[英]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.