【发布时间】:2017-12-30 13:00:38
【问题描述】:
我正在开发一个具有带有查询的 JPA 存储库的项目。其中一个查询在同一查询中有 And 和 Or,但它不能正常工作。
List<Partner> findDistinctByUserNameNotNullAndPartnerNoInAndUserNameLikeOrFirstNameLikeOrderByPartnerNo(
List<Integer> partnerNos, String userName, String firstName);
发生的情况是,当我传递 no Filter 时,它会返回 65 rows,当我传递 Filter 例如“MAR”时,它会返回 265 rows,这没有意义,因为正在获取没有过滤器的查询所有行。我观察到的是UserNameLikeOrFirstNameLikeOr 正在划分查询。他正在列表中寻找Partner 和UserName Like OR he just looks for a FirstName like something else.
我知道问题出在哪里,但我不知道如何解决。
简而言之:如何将 And 和 Or 放在同一个 JPA 查询中并使其正常工作?
谢谢!
【问题讨论】:
标签: spring-boot spring-data-jpa jpql