簡體   English   中英

JPQL-如何從其他實體集中選擇任何行未引用的所有實體

[英]JPQL - how to select all entities not referred to by any row from other entity set

我有實體ParentChild具有單邊關系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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM