hibernate关联映射:多对一、一对一
生活随笔
收集整理的這篇文章主要介紹了
hibernate关联映射:多对一、一对一
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
配置對象關聯關系
- 單向一對多關系
- 例如:班級與學生
Grade類中
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語句就搞定了。要知道他不是由于需求驅動而設計的。
學生類中:
映射中:
<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 學生映射中:
4 證件映射中:
<many-to-one name="student" class="com....Student" unique="true" lazy="false"><!--指明學生屬性對應表的字段--><column name="sid"/> </many-to-one>總結
以上是生活随笔為你收集整理的hibernate关联映射:多对一、一对一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql server数据库:创建数据库、
- 下一篇: 安卓短信恢复(安卓手机恢复短信)