JPQL LEFT JOIN:是针对所有成员评估的集合成员变量条件吗?

时间:2013-08-19 19:01:35

标签: jpa jpql

假设我有一个像这样的JPQL查询:

SELECT p
  FROM Parent p
  LEFT OUTER JOIN p.children child
 WHERE p.children IS EMPTY
    OR child.x = 'y'

我希望在以下任何一种情况下返回Parent个实例:

  • Parent没有孩子
  • Parent至少有一个x等于y
  • 的孩子

根据JPA规范,上面的查询应该做我想要的吗?或者我必须拖出EXISTS - 和 - 子查询 - 和 - IN机器吗?

1 个答案:

答案 0 :(得分:0)

是的,无论JPA实现如何,您的查询都会执行您想要的操作。我个人认为没有任何怀疑的余地,虽然我能感觉到你不喜欢的东西:表children可能会加入两次。但是在我的IMHO中,如果需要,JPA实现应该进行两次数据库查询,以便返回正确的数据。