2

假设我有一个这样的 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-and-subquery-and- INmachinery?

4

1 回答 1

0

是的,无论 JPA 实现如何,您的查询都会做您想做的事。就个人而言,我认为没有任何怀疑的余地,尽管我能感觉到您不喜欢的地方:该表children可能会被连接两次。但是在我的恕我直言中,如果需要,JPA 实现应该进行两个数据库查询以返回正确的数据。

于 2013-11-25T18:59:20.863 回答