Hibernate 映射多对多关联关系

映射多对多,需要建立一张中间表

一共三张表,一个是 Category,一个是 Item,还有一个是 Categories_Items

Categories_Items 作为中间表,其包含两个列,分别对应 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 指定了中间表
            在双向多对多映射中, 必须有一个类要设置 inverse=true, 因为如果两个表同时来维护关系的话, 可能会造成主键的冲突
         -->
        <set name="items" table="CATEGORIES_ITEMS" inverse="false">
            <!-- key items 使用什么当做key, 通过 column 指定了使用中间表中的 C_ID 这一列 -->
            <key>
                <column name="C_ID" />
            </key>
            <!-- 通过 many-to-many 来创建多对多的映射, 其中 column 用来指定对方通过那一列的值来索引 -->
            <many-to-many class="Item" column="I_ID"></many-to-many>
        </set>
    </class>
</hibernate-mapping>
View Code
原文地址:https://www.cnblogs.com/zyx1301691180/p/7703934.html