Jpa JPQL LEFT JOIN:是否对所有成员计算集合成员变量条件?

Jpa JPQL LEFT JOIN:是否对所有成员计算集合成员变量条件?,jpa,jpql,Jpa,Jpql,假设我有这样一个JPQL查询: SELECT p FROM Parent p LEFT OUTER JOIN p.children child WHERE p.children IS EMPTY OR child.x = 'y' 我希望在以下任何情况下返回Parent实例: 父项没有子项 父项至少有一个子项的x等于y 根据JPA规范,上面的查询是否应该满足我的要求?或者我必须在机器中拖出存在-和子查询以及- 是的,无论JPA实现如何,您的查询都将执行您想要的操作。就我个人

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

SELECT p
  FROM Parent p
  LEFT OUTER JOIN p.children child
 WHERE p.children IS EMPTY
    OR child.x = 'y'
我希望在以下任何情况下返回
Parent
实例:

  • 父项
    没有子项
  • 父项
    至少有一个子项的
    x
    等于
    y

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

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

为什么不添加一些日志记录并自己查找呢?您好;谢谢你的评论。我感兴趣的是规范定义的行为,而不是实现特定的行为。