JPA存储库查询语言 - 与OR无法正常工作

时间:2017-07-24 20:01:38

标签: spring-boot spring-data-jpa jpql

我正在开发一个带有查询的JPA存储库的项目。其中一个查询在同一查询中有AndOr,但无法正常运行。

List<Partner> findDistinctByUserNameNotNullAndPartnerNoInAndUserNameLikeOrFirstNameLikeOrderByPartnerNo(
        List<Integer> partnerNos, String userName, String firstName);

当我通过no Filter时,当我通过65 rows例如&#34; MAR&#34;时,我会通过Filter返回265 rows。它返回UserNameLikeOrFirstNameLike这是没有意义的,因为没有过滤器的查询正在获取所有行。我观察到的是Or Partner正在划分查询。他正在使用UserName Like OR he just looks for a FirstName like something else.

在列表中查找And

我知道问题是什么,但我不知道如何解决它。

简而言之:如何将OrGL_TRIANGLES置于同一JPA查询中并使其正常运行?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想使用命名存储库方法实现它,它将类似于:

findDistinctByUserNameNotNullAndPartnerNoInAndUserNameLikeOrPartnerNoInAndFirstNameLikeOrderByPartnerNo(List<Integer> partnerNos, String userName, String firstName);

但始终建议使用简短易读的方法名称,您可以使用JPA NamedQueries@Query