使用Spring Data JPA,如何在同一个字段上创建具有ORed的多个条件的查询?

时间:2016-12-07 07:18:35

标签: java spring spring-data-jpa jpql

我需要帮助从具有或与其他字段一起调整的本机查询中创建JPQL查询。请知道JPA是否仍然不支持它。

原生查询示例:

select * from EMP where (EMP_FLAG is NULL or EMP_FLAG is 'Y') and EMP_ID in (1,2,3);

现在使用JPQL(Java持久查询语言)我使用源

编写了以下内置查询
findByEmpIdInAndEmpFlagIsNotNull(List<Long> ids);

但如何将检查纳入EMP_FLAG =&#39; Y&#39;?

  

注意**我不打算使用@Query注释添加查询。 (知道的   该解决方案)

春季版:4.2, JAVA:1.7

2 个答案:

答案 0 :(得分:3)

你可以这样做

@Query("select e from EMP e where (e.empFlag is null of e.empFlag ='Y')and in :ids")
findByEmpIdIn(@Param("ids") List<Long> ids);

答案 1 :(得分:1)

选择最适合您方法的名称,并使用

进行注释
@Query("select e from Employee e where (e.empFlag is null of e.empFlag = 'Y') and e.empId in ?1")