【发布时间】:2019-08-08 14:06:19
【问题描述】:
我的项目中有以下两个存储库类。
@Repository
public interface AuditRepository extends MongoRepository<AuditEntity, String> {
}
还有一个具有更复杂查询的。
@Service
public class AuditCriteriaRepository {
private final MongoTemplate mongoTemplate;
public AuditCriteriaRepository(MongoTemplate mongoTemplate){
this.mongoTemplate = mongoTemplate;
}
public List<AuditEntity > getAuditEntitiesByStatus(AuditStatus auditStatus, Instant instant){
Query query = new Query();
query.addCriteria(Criteria.where("status")
.is(auditStatus)
).addCriteria(Criteria.where("createdAt").lt(instant));
return mongoTemplate.find(query, AuditEntity.class);
}
}
我现在遇到的问题是它们是作为单独的类自动装配的,如果我可以将两者组合为一个存储库类,我更愿意这样我可以拥有默认的 crud 选项并构建标准选项。
关于如何做到这一点的任何建议/提示?
【问题讨论】:
-
一个建议是在
AuditRepository本身中创建自定义查询(使用@Query注释)。是否真的需要使用第二个存储库中的 MongoTemplate?否则,您必须继续使用单独的存储库类。
标签: java mongodb spring-boot jpa-2.0