JPA Spring存储库过滤多个参数

我按如下方式使用
Spring存储库,以便按日期范围进行过滤

public interface CustomerRepo extends CrudRepository<Customer, Long> {

    public List<Customer> findByCreatedBetween(LocalDate start, LocalDate end);
}

这是荒谬的简单,工作正常,但现在我需要扩展我的休息服务,以考虑其他过滤器标准,例如排序o未排序,o按城市和国家过滤.在调用服务时,可以设置一些参数而不设置其他参数.当然,我不能创建像findByCreatedBetween这样的方法来考虑所有可能的数据组合.处理这种情况的最佳方法是什么?

谢谢 !

最佳答案 看看这篇文章:

http://www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-part-four-jpa-criteria-queries/

您还可以“旧方式”实现存储库,即将entityManager注入到repo中并创建接受自定义条件对象的findByCriteria方法.在这里找到标准API docs: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

点赞