幫助這些是我想要使用Hibernate映射表:需要一些休眠關係映射
user (PK UserId)
article (PK ArticleId, FK CreatorUserId)
category (PK CategoryId, FK ParentCategoryId)
我一直在尋找的documentation爲休眠模式,但我真的不能選擇什麼類型的映射是最適合我的桌子。
任何幫助將不勝感激! :)
幫助這些是我想要使用Hibernate映射表:需要一些休眠關係映射
user (PK UserId)
article (PK ArticleId, FK CreatorUserId)
category (PK CategoryId, FK ParentCategoryId)
我一直在尋找的documentation爲休眠模式,但我真的不能選擇什麼類型的映射是最適合我的桌子。
任何幫助將不勝感激! :)
對於用戶與物品的關係,您可以使用集或列表映射爲包;清單往往是更方便的處理在java端,特別是如果文章有一個屬性,你可能想要排序集合(例如創建日期)。樣本映射爲:
<!-- within User mapping -->
<set name="articles" table="article" inverse="true">
<key column="CreatorUserId"/>
<one-to-many class="Article"/>
</set>
<!-- within Article mapping -->
<many-to-one name="creatorUser" class="User" column="CreatorUserId" not-null="true"/>
上述地圖關聯與製品是負責維護的關係(這避免了在集合變化的不必要的更新)雙向的。詳情是here。如果您寧願使用List來代替Set,請將<set>
替換爲<bag>
;你可以添加「order-by」屬性來讓你的列表在數據庫中排序。
對於您可能在理論上類別相同,但是如果您的類別層次結構很深並且您需要經常檢索特定的級別/子樹,請考慮使用nested set model來代替。
在這兩種情況下,這種關係不需要是雙向的,但大部分是時間。
感謝您的評論。我應該使用「set」-tag來指定User> Articles的一對多關係嗎?如果是這樣,那麼在用戶的集合映射中,鍵列屬性的值應該是多少? – Mickel 2009-10-06 15:14:38
我對JPA註釋風格映射比XML Hibernate特定的映射更熟悉。 – cletus 2009-10-06 15:19:39
看起來很簡單。 JPA註解是否也支持關係映射? – Mickel 2009-10-06 15:27:04