java 多个“与/或”条件表达式 spring data jpa [重复]

cclgggtu  于 2023-02-14  发布在  Java
关注(0)|答案(1)|浏览(106)
    • 此问题在此处已有答案**:

Spring data jpa - How to combine multiple And and Or through method name(4个答案)
昨天关门了。
我想有一个过滤器查询使用Spring数据JPA。条件是这样的东西:

  • (A或B或C)和D *

当我想使用Spring Data JPA时,我应该将其更改为如下所示(优先级顺序是And然后Or,就像Java一样):

  • (A和D)或(B和D)或(C和D)*

Spring存储库类中的代码为:

Page<SystemEntity>  findByNameContainsAndFlagIsFalseOrFamilyContainsAndFlagIsFalseOrEmailContainsAndFlagIsFalse(String name, String family ,String email, Pageable pageable);

您可以看到上面行"AndFlagIsFalse"处的D条件重复了3次。
有没有办法使用更短的格式,如"(A或B或C)和D"来实现?

ubof19bj

ubof19bj1#

使用@Query注解可以直接定义查询:

@Query("SELECT se FROM SystemEntity se WHERE (se.name = :name AND se.flag = true) OR (. . .) OR (. . .)")
Page<SystemEntity> findSystemEntities(String name, String family ,String email, Pageable pageable);

相关问题