我正在使用 Spring 存储库,如下所示,以便按日期范围进行过滤
public interface CustomerRepo extends CrudRepository<Customer, Long> {
public List<Customer> findByCreatedBetween(LocalDate start, LocalDate end);
}
它非常简单并且工作正常,但现在我需要扩展我的休息服务以考虑其他过滤条件,例如排序或未排序,o 按城市和国家/地区过滤。调用服务时,可能会设置一些参数,而另一些则不设置。当然,我无法创建像 findByCreatedBetween 这样的方法来考虑所有可能的数据组合。处理这种情况的最佳方法是什么?
谢谢!
最佳答案
看看这篇文章:
您还可以“以旧方式”实现存储库,即将entityManager注入(inject)到您的存储库中并创建一个接受自定义条件对象的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
关于spring - JPA Spring存储库过滤多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36485224/