日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hibernate 关联总结

發布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hibernate 关联总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ? ?1:主外鍵:兩表關聯

<!-- 利用一對多關系加載ras屬性值 -->

<set name="ras">

<!--指定關聯外鍵字段,

將來拿外鍵與當前主鍵對等-->

<key column="user_id"/>

<one-to-many class="ReceiveAddress"/>

</set>

<!-- 利用多對一關聯加載相關user信息 -->

<!--?

<property name="userId" type="integer">

<column name="user_id"></column>

</property>

-->變為

? ? ? <many-to-one name="user"?

class="User" column="user_id">

</many-to-one>


? ? ? ? ? ?2:多對多:d_category_product為中間表

? ? ? ? ? ? <!-- 利用多對多關系加載pros集合 -->

? ? ? ? <set name="pros" order-by="id"

? ? ? ? table="d_category_product">

? ? ? ? <key column="cat_id"></key>

? ? ? ? <many-to-many column="product_id"

? ? ? ? class="com.tarena.pojo.Product">

? ? ? ? </many-to-many>

? ? ? ? </set>


? ? ? ? ? <!-- 利用多對多加載cats集合 -->

? ? ? ? <set name="cats"?

? ? ? ? table="d_category_product">

? ? ? ? <key column="product_id"></key>

? ? ? ? <many-to-many column="cat_id"?

? ? ? ? class="com.tarena.pojo.Category">

? ? ? ? </many-to-many>

? ? ? ? </set>

? ? ? ? ? ? 3.繼承關系映射

? ? ? ? ? ? ? *1)父類和子類都有對應的表,使用<joined-subclass>定義繼承關系,使用步驟如下

? ? ? ? ? a.將父表和子表生成單表的基本映射

? ? ? ? ? b.將子類添加extends父類

? ? ? ? ? c.利用<joined-subclass>定義子類映射

? ? ? ? ? ? ? ? 從Hibernate3.0版本開始,可以將<joined-subclass>單獨取出,放到一個hbm.xml中定義.格式如下

? ? ? ? ? <hibernate-mapping>

? ? ? ? ? ? <joined-subclass name="子類類型"?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?extends="父類類型"

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?table="子類表">

? ? ? ? ? ? ? <key column="子類表關聯字段"/>

? ? ? ? ? ? ? //property字段映射

? ? ? ? ? ?</joined-subclass>

? ? ? ? ?</hibernate-mapping>

? ? ? ? ? Hibernate3.0版本之前,需要下面格式

? ? ? ? ?<hibernate-mapping>

? ? ? ? ? ?<class name="父類類型" table="父類表">

? ? ? ?//id主鍵映射

? ? ? ? ? ? ? ?//父類property映射

? ? ? ? ? ? ?<joined-subclass name="子類類型"?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?extends="父類類型"

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?table="子類表">

? ? ? ? ? ? ? <key column="子類表關聯字段"/>

? ? ? ? ? ? ? //property字段映射

? ? ? ? ? ? </joined-subclass>

? ? ? ? ? </class>

? ? ? ? ?</hibernate-mapping>

? ? ? ? ? ? ? *2)父類和子類使用同一張數據表

? ? ? ? ? ? ? 選擇題:

? ? ? ? ? ? ? 編號,題目,難度,選項,選擇答案

? ? ? ? ? ? ?簡答題:

? ? ? ? ? ? ?編號,題目,難度,簡答答案

? ? ? ? ? ? ?數據表Question

? ? ? ? ? ? ?編號,題目,難度,選項,選擇答案,簡答答案,題目類型

? ? ? ? ? ? ? ?使用<subclass>定義子類映射,具體步驟:

? ? ? ? ?a.修改實體類,定義成父類和子類的結構

? ? ? ? ?b.在映射文件中定義映射

? ? ? ? ?<hibernate-mapping>

? ? ? ? ? ?<class name="父類型" table="數據表">

? ? ? ? ? ? ? ?//定義父類中屬性的映射

? ? ? ? ? ?<discriminator column="區分字段"/>

? ? ? ? ? ?<subclass name="子類1"?

? ? ? ? ? ? ? ? ? ?discriminator-value="區分值">

? ? ? ? ? ? ? ? //定義子類1中屬性的映射

? ? ? ? ? ?</subclass>

? ? ? ? ? ?<subclass name="子類2"?

? ? ? ? ? ? ? ? ? ?discriminator-value="區分值">

? ? ? ? ? ? ? ? //定義子類2中屬性的映射

? ? ? ? ? ?</subclass>

? ? ? ? ? ?</class>

? ? ? ? <hibernate-mapping>

? ? ? ? ? ?4.其他映射

? ? ? ? ? ? ?*1).組件映射

? ? ? ? ? ? ? 目的:代碼重復利用組件,減少冗余性.

? ? ? <class>

? ? ? ? ? ? ? ? //...主鍵和屬性映射

? ? ? ?<component name="組件屬性名" class="組件類型">

? ? ? ? ? ? ? ?//組件子屬性的映射property

? ? ? ?</component>

? ? ? </class>

? ? ? ? ? ? *2).聯合主鍵映射

? ? ? ? ? ? ?目的:兩個或兩個以上字段充當主鍵

? ? ?<class>

? ? ? <composite-id id="主屬性名" class="類型">

? ? ? ? <key-property name="子屬性1" type=""?

? ? ? ? ? ? ? ? ?column="主鍵字段1">

? ? ? ? </key-property>

? ? ? ? <key-property name="子屬性2" type=""?

? ? ? ? ? ? ? ? ?column="主鍵字段2">

? ? ? ? </key-property>

? ? ? </composite-id>

? ? ? ? ? ? ? ?//其他普通屬性和字段映射

? ? </class>

?

轉載于:https://blog.51cto.com/pinus/1097773

總結

以上是生活随笔為你收集整理的hibernate 关联总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。