好吧我有一個一對多的父類和子類之間的映射。我可以保存父母,它會自動保存子對象,但問題是在父類上執行SELECT時。看來我正在爲數據庫表中的每個Child對象獲取一個Parent對象。 因此,如果我保存1個父對象與2個子對象,當我使用Hibernate選擇條件我得到2個父對象! 我只想讓Hibernate在Set子域中返回1個父對象及其2個子對象。JPA一對多查詢結果問題
我想我的映射必定是錯的。有人可以幫助這個嗎?
class Parent{
Long parentId;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "parent_table_id", nullable = false)
Set childs;
....
}
class Child{
Long childId;
}
注: 「parent_table_id」 引用父主鍵。此值也不映射到任何Parent或Child對象。我手動插入此值,並只在@JoinColumn註釋中使用它。 好吧,我是新來這個JPA的東西,但似乎Hibernate會自動插入字段「parent_table_id」在Child表中的值,當我保存一個Parent與Child對象。 這可能導致問題?
當您在條件查詢中執行內部連接時,如果未設置DISTINCT_ROOT_ENTITY,實際上會爲結果集中的每一行獲取一個對象。你的映射看起來很好,你可以建議發佈不符合你要求的查詢:) – Affe 2010-10-21 21:41:02