用例
我正在尝试将自定义行为添加到 Spring Data MongoDB的所有存储库功能.
该文档无益地描述了如何使用JPA进行连接.无论如何使用Mongo等效的配置设置.
我想将findByCategoryName(String categoryName)方法添加到所有实体,因为我的所有实体都将具有Category.Category是DBRef对象,因此必须使用自定义查询.
以下是配置的相关部分
<!-- Activate Spring Data MongoDB repository support -->
<mongo:repositories base-package="com.domain.*.repo" repository-impl-postfix="CustomImpl"
factory-class="com.domain.commonrepo.CommonMongoRepoFactoryBean"/>
<bean id="mappingContext" class="org.springframework.data.mongodb.core.mapping.MongoMappingContext" />
<mongo:mapping-converter mapping-context-ref="mappingContext">
<mongo:custom-converters base-package="com.domain.mongo.converter" />
</mongo:mapping-converter>
<bean id="entityInformationCreator" class="org.springframework.data.mongodb.repository.support.DefaultEntityInformationCreator">
<constructor-arg name="mappingContext" ref="mappingContext" />
</bean>
Run Code Online (Sandbox Code Playgroud)
..
FactoryBean
@NoRepositoryBean
public class CommonMongoRepoFactoryBean<T extends MongoRepository<?,?>, ID extends
Serializable> extends MongoRepositoryFactoryBean{
@Autowired
private static MongoTemplate mongoTemplate;
protected MongoRepositoryFactory getRepositoryFactory(Class<T> clazz) {
return new CommonMongoRepoFactory(clazz);
}
private static class CommonMongoRepoFactory extends MongoRepositoryFactory {
private Class clazz;
public …Run Code Online (Sandbox Code Playgroud)