[英]JPA parent child relationship
我有一個場景,我需要在一個案例中加載所有子值,在另一個案例中加載一些特定的子值。 我在兩種情況下都使用單個bean,並使用命名查詢編寫查詢。
@namedqueries{
@namedQuery(name="query1") = "select parent from Parent parent",
@namedQuery(name="query2") = "select parent from Parent parent",
}
Class Parent {
@manytomany
@join mentioned my join condition here //
List<Child> child ;
}
Class Child
{
String A;
String B;
String C;
@manytomany(mappedby = "child")
List<parent> parent ;
}
現在在我的查詢2中我只需要加載字符串A而不是字符串B和字符串C. 我試過用
"select parent.child .A from Parent parent" as Query 2
但得到以下錯誤
"Attempting to navigate to relation field via multi-valued association and
jpql doesnt allow traversal through multi valued relationship. Try join instead"
所以關於如何繼續這個的任何建議..
1) Should I have to create a new bean for each Query
2) Or Can we control the child object parameters in specific named queries
當您說select parent.child
並且您不能說select parent.child.A
時,您正在訪問集合。根據HQL標准,這是錯誤的。 您需要使用join執行此操作,因為錯誤消息建議:
select c.A from parent as p join p.child as c
然后不,您不必為每個查詢創建一個新bean。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.