需要用到@manytomany註解,然後在需要維護關係的一方,加上@jointable註解。
必須指定乙個維護關係,否則會導致關係表id重複出現錯誤。
@jointable 有以下屬性,joincolumns ,設定該實體類對映在關係表中的外來鍵列名和參照列,inversecolumns ,設定和該實體類關聯的實體,在關係表中的外來鍵列名和參照列。name指定表名
同樣,由於關係表的存在,所以無論是維護關係的一方還是不維護關係的一方,都預設採用延遲載入策略。
@manytomany
@jointable(name="中間表名稱",
joincolumns=@joincolumn(name="本類的外來鍵",
referencedcolumnname="本類與外來鍵對應的主鍵"),
inversejoincolumns=@joincolumn(name="對方類的外來鍵",
referencedcolunname="對方類與外來鍵對應的主鍵")
)
public set
getitems()
@jointable(name="relationtable",
joincolumns=,
inversejoincolumns=
)@manytomany
public set
getcategories()
@test
public void testmany()
Hibernate多對多關係對映
兩張表的多對多關係,在資料庫中通常是通過第三張中間表來實現的,第三張中間表放的是兩張表各自的主鍵值,通過主鍵與主鍵的對應來體現表直接的關係。比如在許可權系統中,乙個使用者可以擁有多種許可權,而一種許可權也可以授予多個使用者。在持久化物件設計的時候,角色和使用者都分別有乙個集合來防止擁有它的使用者或角...
Hibernate對映多對多關聯關係
前邊我們講過了hibernate如何在域模型和關係資料模型中對映一對一的關聯關係,分為外來鍵方式和主鍵方式兩種,外來鍵方式其實就是和雙向一對多差不多,不同的是在多的一方需要為外來鍵新增乙個unique唯一的約束。主鍵方式其實就是將兩方 的主鍵一一對應,且需要將其中一方的主鍵的生成方式設定成forei...
多對多關係
實體模型中相關的模型之間為了方便查詢需要做到你中有我 我中有你 一對多表設計上是在多方應用少方的主鍵作為外來鍵約束 模型上需要在多方加入乙個少方模型物件的屬性,在少方加入乙個多方物件的列表 語法 少方物件 db.relationship 少方模型名 backref db.backref xxlist...