Hibernate 映射多對(duì)多關(guān)聯(lián)關(guān)系
映射多對(duì)多,需要建立一張中間表
一共三張表,一個(gè)是 Category,一個(gè)是 Item,還有一個(gè)是 Categories_Items
Categories_Items 作為中間表,其包含兩個(gè)列,分別對(duì)應(yīng) CategoriyId 和 ItemId
下面附上代碼:
<hibernate-mapping package="hibernate.many2many"> <class name="Category" table="CATEGORIES"> <id name="id" type="java.lang.Integer"> <column name="ID" /> <generator class="native" /> </id> <property name="categoryName" type="java.lang.String"> <column name="CATEGORY_NAME" /> </property> <!-- table 指定了中間表 在雙向多對(duì)多映射中, 必須有一個(gè)類要設(shè)置 inverse=true, 因?yàn)槿绻麅蓚€(gè)表同時(shí)來維護(hù)關(guān)系的話, 可能會(huì)造成主鍵的沖突 --> <set name="items" table="CATEGORIES_ITEMS" inverse="false"> <!-- key items 使用什么當(dāng)做key, 通過 column 指定了使用中間表中的 C_ID 這一列 --> <key> <column name="C_ID" /> </key> <!-- 通過 many-to-many 來創(chuàng)建多對(duì)多的映射, 其中 column 用來指定對(duì)方通過那一列的值來索引 --> <many-to-many class="Item" column="I_ID"></many-to-many> </set> </class> </hibernate-mapping>
精誠(chéng)所至,金石為開。

浙公網(wǎng)安備 33010602011771號(hào)