JPQLLEFTJOIN:是针对所有成员计算的集合成员变量条件



假设我有一个JPQL查询,如下所示:

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

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

  • Parent没有子级
  • CCD_ 3具有CCD_ 4等于CCD_

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

是的,无论JPA实现如何,您的查询都会执行您想要的操作。就我个人而言,我看不出有任何怀疑的余地,尽管我能感觉到你不喜欢的地方:children表可能会被连接两次。但是在我的IMHO中,如果需要,JPA实现应该进行两次DB查询,以便返回正确的数据。

最新更新