JPA选择使用IN

时间:2014-03-03 12:18:32

标签: java sql jpa

以下是我从数据库中选择的内容:

SELECT * FROM testlogging.employees 
where
  EMPLOYEE_NO in (
    select EMPLOYEES_EMPLOYEE_NO from testlogging.test_logging
    where ID in (
      select TEST_LOGGING_ID from testlogging.test_logging_detail 
      where APPROVAL_LEVELS_ID = '4'
    )
)

我如何在JPA中执行此操作?

SELECT e FROM Employees e ???

2 个答案:

答案 0 :(得分:0)

如果您要求使用JPA IN语法,则可以执行以下操作:

SELECT e FROM Employees e where e.employee_no IN :employeelist

以及屁股

query.setParameter( "employeelist" , yourlist );

当然会相应地构建yourlist。如果你真的不需要参数化内部查询,你可以忽略它,只需要直接前进。

干杯,

答案 1 :(得分:0)

如果您正在使用JPA Criteria元模型查询,IN用法就像这样

CriteriaQuery<Pet> cq = cb.createQuery(Pet.class);
Root<Pet> pet = cq.from(Pet.class);
cq.where(pet.get(Pet_.color).in("brown", "black"));

http://docs.oracle.com/javaee/6/tutorial/doc/gjivm.html

所述