[英]JPQL - how to select all entities not referred to by any row from other entity set
我有实体Parent
和Child
具有单边关系Child
n -> 1
Parent
。 换句话说, Parent
不了解其子级。
如何编写JPQL
查询,以选择满足特定谓词的Child
的特定子集未引用的Parent
所有实例?
示例: select all parents which are not referred to by children who are younger than 8 years
您可以在父子关系上尝试LEFT OUTER JOIN,例如:
SELECT c, p.name FROM Country c LEFT OUTER JOIN c.capital p
如果空值是一个问题,则可以通过添加以下内容来消除它们:
... WHERE p.id IS NOT NULL
有关更多详细说明,请参见本指南: http : //www.objectdb.com/java/jpa/query/jpql/from#LEFT_OUTER_JOIN_
如果父级不了解子级,则可以通过使用子查询来过滤父级来获得相似的结果,例如:
SELECT e.parent_id
FROM ParentEntity e
WHERE e.parent_id NOT IN (
SELECT c.parent_id FROM ChildEntity c) ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.