Skip to content

Instantly share code, notes, and snippets.

@flnj
Created August 20, 2015 01:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save flnj/76a291514f55d1ca3321 to your computer and use it in GitHub Desktop.
Save flnj/76a291514f55d1ca3321 to your computer and use it in GitHub Desktop.
public class MyRepositoryFactoryBean<T extends Repository<S, ID>, S, ID extends Serializable> extends RepositoryFactoryBeanSupport<T, S, ID> {
@Autowired
private CassandraTemplate cassandraTemplate;
@Override
protected RepositoryFactorySupport createRepositoryFactory() {
return new MyRepositoryFactory(cassandraTemplate);
}
public void setCassandraTemplate(CassandraTemplate cassandraTemplate) {
this.cassandraTemplate = cassandraTemplate;
}
@Override
public void afterPropertiesSet() {
super.afterPropertiesSet();
Assert.notNull(cassandraTemplate, "cassandraTemplate must not be null!");
setMappingContext(cassandraTemplate.getConverter().getMappingContext());
}
public static class MyRepositoryFactory extends CassandraRepositoryFactory {
private final CassandraTemplate cassandraTemplate;
public MyRepositoryFactory(CassandraTemplate cassandraTemplate) {
super(cassandraTemplate);
this.cassandraTemplate = cassandraTemplate;
}
@Override
@SuppressWarnings({ "rawtypes", "unchecked" })
protected Object getTargetRepository(RepositoryMetadata metadata) {
CassandraEntityInformation<?, Serializable> entityInformation = getEntityInformation(metadata.getDomainType());
return new MyRepositoryImpl(entityInformation, cassandraTemplate);
}
@Override
protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata) {
return SimpleRepository.class;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment