詳述多對多關係映射

        上面兩篇文章說了一對一關聯映射和一對多關聯映射,下面該說最後一種關聯映射,多對多關聯映射,以User-Role爲例:
           
        
        1User--Role(多對多,單向關聯,關係維護在關係表t_user_role端)
           iRole
                                <hibernate-mapping>
    <class name="com.tgb.hibernate.Role" table="t_role">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="name" />
    </class>
</hibernate-mapping>

iiUser

         <hibernate-mapping>

    <class name="com.tgb.hibernate.User" table="t_user">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="name" />
        <set name="roles" table="t_user_role">
            <key column="user_id" />
            <many-to-many class="com.tgb.hibernate.Role" column="role_id" />
        </set>
    </class>
  </hibernate-mapping>

2User--Role(多對多,雙向關聯),其餘關係不變

            iRole
                     <hibernate-mapping>
    <class name="com.tgb.hibernate.Role" table="t_role">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="name" />
        
        <set name="users" table="t_user_role">
            <key column="role_id" />
            <many-to-many class="com.tgb.hibernate.User" column="user_id" />
        </set>
    </class>
  </hibernate-mapping>

        總結:通過以上的總結,關係的維護其實就是在某一端或兩端加上關聯,當進行查找的時候,通過關聯關係可以找到相對應的數據。其實和我們平時理解的實體對象模型的設計是一樣的。一對一關係,關係隨便放到謀一端就可;一對多則放到多的一端,多對多則就單獨出來,形成一張關係表進行維護。
發佈了159 篇原創文章 · 獲贊 243 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章