我使用Spring存储库,如下所示,以按日期范围过滤
public interface CustomerRepo extends CrudRepository<Customer, Long> {
public List<Customer> findByCreatedBetween(LocalDate start, LocalDate end);
}
这很荒谬简单,工作正常,但现在我需要扩展我的休息服务以考虑其他过滤标准,例如排序o未排序,按城市和国家过滤。在调用服务时,可以设置一些参数而不设置其他参数。当然,我不能创建像findByCreatedBetween这样的方法来考虑所有可能的数据组合。处理这种情况的最佳方法是什么?
谢谢!
答案 0 :(得分:1)
看一下这篇文章:
您还可以实现您的存储库&#34;旧方法&#34;,即将entityManager注入您的存储库并创建接受自定义条件对象的findByCriteria方法。在此处查找标准API文档:https://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/querycriteria.html
标准API的另一种替代方法是使用JPQL,您可以使用相同的条件创建动态查询字符串。 JPQL参考:http://docs.oracle.com/javaee/6/tutorial/doc/bnbtg.html
答案 1 :(得分:0)