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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

hibernate关联映射:多对一、一对一

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hibernate关联映射:多对一、一对一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

配置對象關聯關系
- 單向一對多關系
- 例如:班級與學生
Grade類中

public class Grade{private int gid;private String gname;private String gdesc;private Set student = new HashSet();//set實現班級與學生的一對多關系 }

Grade.hbm.xml中

<hibernate-mapping><class name="com.pb.hibernate.po.Grade" table="GRADE"><set name="students" inverse="true"><!-- inverse為true,則表示本端不能維護關系,會交給另一端維護關系,本端失效。此處我們讓多的一端維護關系,一的一端失效。所以,此處設置為true --><!--學生表中的外鍵--><key column="GID"/><one-to-many class="com.pb.hibernate.po.Student"/></set></class> </hibernate-mapping>

上面我們配置了從班級到學生的關聯映射,下面我們配置從學生到班級的多對一映射關系,這樣就構成雙向關聯映射。雙向關聯映射與單向關聯映射的區別是:http://blog.csdn.net/yanmei_yao/article/details/7596163
總結:通過一對多雙向關聯映射,我們將關系交給多的一端維護,而且從一的一端也能夠看到多的一端。這樣就很好的解決了一對多單向關聯的缺陷,優化之后的它查詢數據,不管是一的一端還是多的一端,只需要一個sql語句就搞定了。要知道他不是由于需求驅動而設計的。
學生類中:

public class Student{private int sid;private String sname;private String sex;private Grade grade;//多對一關系 }

映射中:

<hibernate-mapping><class name="com.pb.hibernate.po.Student" table="STUDENT">...<many-to-one name="Grade"><!--grade屬性對應的數據庫表中的字段--><column name="GID"/></many-to-one></class> </hibernate-mapping>

一對一關聯映射
比如:學生表與學生證表的關系
1 Student類中增加Paper屬性
2 Paper類中Student屬性
3 學生映射中:

<one-to-one name="paper" class="com....Paper" cascade="all" lazy="false" property-ref="student"/>

4 證件映射中:

<many-to-one name="student" class="com....Student" unique="true" lazy="false"><!--指明學生屬性對應表的字段--><column name="sid"/> </many-to-one>

總結

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

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