当前位置: 首页 > 知识库问答 >
问题:

如何在Spring数据JPA中做AND和多个OR参数的方法

金阳曜
2023-03-14

我正在尝试为此查询制定一个方法名称:

  @Query("from Employees where department = ?1 and (fullTime = true or contractor = true or subContractor = true)")

我原以为这种方法会奏效,但它却能让你全力以赴

  public List<Employees> findByDepartmentAndfullTimeTrueOrContractorTrueOrSubContractorTrue(String dept);

这是一个相关的问题:Spring JPA Data"OR"查询,但在2012年被问到。有没有一种方法可以在不使用@Query的情况下实现这一点?

共有1个答案

谭兴学
2023-03-14

这是目前不支持,可能永远不会是一个非常简单的原因:

派生查询被认为是定义非常简单的查询的一种方法。我承认这很模糊,但如果你进入FindBydePartment和FullTimeTrue或ContractorTrue或SubContractorTrue是时候重新考虑这是否真的是你想要向客户公开的内容了。它写起来很难,读起来也很难,实际上可能不仅仅是一组谓词,而是传达了更高层次的含义,因此应该用更具描述性的方式来命名。

正如您已经发现的,解决方案是使用@Query或Querydsl谓词。

 类似资料: