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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Hibernate4一对一关系映射(唯一外键方式)

發布時間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate4一对一关系映射(唯一外键方式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

示例:一個人(person) 住一個地址(address),一個地址有一個人。

?

Java代碼 ?
  • public?class?Person?{??
  • ??
  • ????private?Integer?id;??
  • ????private?String?name;??
  • ??
  • ????private?Address?address;??
  • ??
  • ????//getter?and?setter??
  • }?????
  • ?

    Java代碼 ?
  • public?class?Address?{??
  • ??
  • ????private?Integer?id;??
  • ????private?String?detail;??
  • ??
  • ????private?Person?person;??
  • ??
  • ????//getter?and?setter??
  • }??
  • ?用XML映射

    Xml代碼 ?
  • <hibernate-mapping?package="org.monday.hibernate4.domain">??
  • ????<class?name="Person"?table="tbl_person">??
  • ????????<id?name="id">??
  • ????????????<generator?class="identity"?/>??
  • ????????</id>??
  • ????????<property?name="name"?/>??
  • ????????<many-to-one?name="address"?class="Address"?column="address_id"?unique="true"/>??
  • ????</class>??
  • </hibernate-mapping>??
  • ?

    Xml代碼 ?
  • <hibernate-mapping?package="org.monday.hibernate4.domain">??
  • ????<class?name="Address"?table="tbl_address">??
  • ????????<id?name="id">??
  • ????????????<generator?class="identity"/>??
  • ????????</id>??
  • ????????<property?name="detail"?/>??
  • ????????<one-to-one?name="person"?class="Person"?property-ref="address"?/>??
  • ????</class>??
  • </hibernate-mapping>??
  • ?1、 tbl_address 表中使用外鍵來完成一對一關聯,限制多方最多只能有一條記錄參考到一方,
    這是多對一的一個特列。所以設置 <many-to-one> 的 unique 的屬性為 true 。
    2、 <one-to-one> 的 property-ref 屬性 指定引用關聯類的屬性。

    ?

    用@Annotation映射

    Java代碼 ?
  • @Entity??
  • @Table(name?=?"tbl_person")??
  • public?class?Person?{??
  • ??
  • ????@Id??
  • ????@GeneratedValue(strategy?=?GenerationType.IDENTITY)??
  • ????private?Integer?id;??
  • ????private?String?name;??
  • ??
  • ????@OneToOne??
  • ????@JoinColumn(name?=?"address_id",?unique?=?true)??
  • ????private?Address?address;??
  • ??
  • ????//?getter?and?setter??
  • }?????
  • ?

    Java代碼 ?
  • @Entity??
  • @Table(name?=?"tbl_address")??
  • public?class?Address?{??
  • ??
  • ????@Id??
  • ????@GeneratedValue(strategy?=?GenerationType.IDENTITY)??
  • ????private?Integer?id;??
  • ????private?String?detail;??
  • ??
  • ????@OneToOne(mappedBy?=?"address")??
  • ????private?Person?person;??
  • ??????
  • ????//?getter?and?setter??
  • }??
  • ?測試代碼

    Java代碼 ?
  • Person?person?=?new?Person();??
  • person.setName("monday");??
  • ??
  • Address?address?=?new?Address();??
  • address.setDetail("shanghai");??
  • ??
  • person.setAddress(address);??
  • address.setPerson(person);??
  • ??
  • session.save(person);??
  • session.save(address);???
  • ? SQL schema

    Sql代碼 ?
  • Hibernate:???
  • ????alter?table?tbl_person???
  • ????????drop???
  • ????????foreign?key?FKACCC46F65DCD05A8??
  • Hibernate:???
  • ????drop?table?if?exists?tbl_address??
  • Hibernate:???
  • ????drop?table?if?exists?tbl_person??
  • Hibernate:???
  • ????create?table?tbl_address?(??
  • ????????id?integer?not?null?auto_increment,??
  • ????????detail?varchar(255),??
  • ????????primary?key?(id)??
  • ????)??
  • Hibernate:???
  • ????create?table?tbl_person?(??
  • ????????id?integer?not?null?auto_increment,??
  • ????????name?varchar(255),??
  • ????????address_id?integer?unique,??
  • ????????primary?key?(id)??
  • ????)??
  • Hibernate:???
  • ????alter?table?tbl_person???
  • ????????add?index?FKACCC46F65DCD05A8?(address_id),???
  • ????????add?constraint?FKACCC46F65DCD05A8???
  • ????????foreign?key?(address_id)???
  • ????????references?tbl_address?(id)??
  • Hibernate:???
  • ????insert???
  • ????into??
  • ????????tbl_person??
  • ????????(name,?address_id)???
  • ????values??
  • ????????(?,??)??
  • Hibernate:???
  • ????insert???
  • ????into??
  • ????????tbl_address??
  • ????????(detail)???
  • ????values??
  • ????????(?)??
  • Hibernate:???
  • ????update??
  • ????????tbl_person???
  • ????set??
  • ????????name=?,??
  • ????????address_id=????
  • ????where??
  • ????????id=????????
  • ?

    ?

    這里多了一條update語句,是因為插入順序決定的。

    若這樣

    Java代碼 ?
  • session.save(address);???
  • session.save(person);??
  • ?就不會有update語句了。

    總結

    以上是生活随笔為你收集整理的Hibernate4一对一关系映射(唯一外键方式)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 亚洲免费在线观看 | 探花系列在线观看 | 亚洲激情在线视频 | 男人插入女人下面的视频 | 777欧美| 五月婷婷啪啪 | 一本加勒比hezyo黑人 | 神马久久久久久久久久 | 农夫色综合 | 国产精品一级二级三级 | 午夜视频色| 91免费网| 天天色天天色 | 国产成人一区二区三区视频 | 一个人看的www视频在线观看 | 免费不卡av | 高清在线一区二区三区 | 欧美女优在线 | 国产乱子轮xxx农村 岛国久久久 | juliaann第一次和老师 | 成人免费大片黄在线播放 | 2017日日夜夜 | 亚洲 欧洲 日韩 | 91精品国产日韩91久久久久久 | 日韩乱论| 亚洲a视频在线观看 | 啪啪小视频网站 | 欧美操操操 | 久久国产精品亚洲 | 亚洲精品69 | 欧美综合日韩 | 精品国产美女 | 午夜影院在线观看视频 | 国产亚洲视频在线 | 亚洲免费视频大全 | 丁香花高清在线观看完整动漫 | 色吧久久 | www.777奇米| 黄色一级大片在线免费看国产一 | 光棍影院一区二区 | 日韩精品v | 久久中文精品 | 精品久久久久久久久久久 | 日韩中文第一页 | 免费在线一区二区三区 | 少妇精品高潮欲妇又嫩中文字幕 | 亚洲一区二区在线电影 | 97se视频| 中国av在线 | 国内av| 疯狂做爰的爽文多肉小说王爷 | 综合久久一区二区 | 亚洲www啪成人一区二区麻豆 | 奇米影视第四色777 波多野结衣一区二区三区免费视频 | 国产精品福利一区二区 | 日本三级中国三级99人妇网站 | 欧美福利一区二区三区 | 中文一区在线 | 毛片中文字幕 | 日韩在线毛片 | 玉女心经是什么意思 | 九色国产视频 | 性户外野战hd | 色啦啦视频| beeg日本高清xxxx18 | 精品精品精品 | 久久久亚洲精品无码 | 日韩久久成人 | 4438亚洲最大 | 亚洲制服在线观看 | 精品一区二区三区蜜臀 | 91国产在线播放 | 国产伦精品一区二区三区视频女 | 国产第100页| 污视频免费在线观看网站 | 日韩和欧美的一区二区 | 澳门久久久 | 亚洲人成一区 | 黄色永久网站 | 91捆绑91紧缚调教91 | 欧美人与动牲交a欧美精品 欧美三级在线看 | 日本做爰三级床戏 | 精品在线视频一区 | 国产成人在线视频观看 | 精产国品一二三产品蜜桃 | 久久久国产精品免费 | 自拍偷拍在线视频 | 久久香蕉网站 | 亚洲激情免费视频 | 国产乱妇无码大片在线观看 | freesex性hd公交车上 | 国产一级久久久久毛片精品 | 亚洲精品视频免费看 | 毛片视频播放 | 一二三区在线 | 日韩爆操| 国产精品综合一区二区 | 天天爽夜夜爽人人爽 | 公侵犯人妻一区二区三区 |