Hibernate几种关联射.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate几种关联射

Hibernate?Annotation 几种关联映射 ? 一对一 (One-To-One)? 使用@OneToOne注解建立实体Bean之间的一对一关联。一对一关联有三种情况: (1)关联的实体都共享同样的主键, (2)其中一个实体通过外键关联到另一个实体的主键(注意要模拟一对一关联必须在外键列上添加唯一约束) (3)通过关联表来保存两个实体之间的连接关系(要模拟一对一关联必须在每一个外键上添加唯一约束) 1. 共享主键的一对一关联映射: ? @Entity? @Table(name=Test_Body)? public?class?Body?{? ? ? ? private?Integer?id;? ? ? ? private?Heart?heart;? ? ? ? @Id? ? ? ? public?Integer?getId()?{? ? ? ? ? ? ? return?id;? ? ? ? }? ? ? ? public?void?setId(Integer?id)?{? ? ? ? ? ? ? this.id?=?id;? ? ? ? }? ? ? ? @OneToOne? ? ? ? @PrimaryKeyJoinColumn? ? ? ? public?Heart?getHeart()?{? ? ? ? ? ? ? return?heart;? ? ? ? }? ? ? ? public?void?setHeart(Heart?heart)?{? ? ? ? ? ? ? this.heart?=?heart;? ? ? ? }? }? @Entity? @Table(name=Test_Heart)? public?class?Heart?{? ? ? ? private?Integer?id;? ? ? ? @Id? ? ? ? public?Integer?getId()?{? ? ? ? ? ? ? return?id;? ? ? ? }? ? ? ? public?void?setId(Integer?id)?{? ? ? ? ? ? ? this.id?=?id;? ? ? ? }? }? 通过 @PrimaryKeyJoinColumn 批注定义了一对一关联 ? ? ? 2. 使用外键进行实体一对一关联: ? 打造专属自己的淘宝旺铺 装修店铺优化商品推广网站客服工作物流发货 @Entity? @Table(name=Test_Trousers)? public?class?Trousers?{? ? ? ? @Id? ? ? ? public?Integer?id;? ? ? ? @OneToOne? ? ? ? @JoinColumn(name?=?zip_id)? ? ? ? public?TrousersZip?zip;? }? @Entity? @Table(name=Test_TrousersZip)? public?class?TrousersZip?{? ? ? ? @Id? ? ? ? public?Integer?id;? ? ? ? @OneToOne(mappedBy?=?zip)? ? ? ? public?Trousers?trousers;? }? 上面的例子是指 Trousers 通过 Trousers 的外键列 zip_id 和 TrousersZip 关联, @JoinColumn 批 注 定 义 了 联 接 列 , 该 批 注 和 @Column 批 注 有 点 类 似 , 但 是 多 了 一 个 名 为 referencedColumnName 的参数。 该参数定义了 所关联目标实 体中的联接列 ,注意,当 referencedColumnName 关联到非主键列的时候, 关联的目标类必须实现 Serializable , 还要注 意的是所映像的属性对应单个列(否则映射无效) ? 一对一关联可能是双向的,在双向关联中,有且仅有一端作为主体( owner )端存在:主体 端负责维护联接列(即更新) ,对于不需要维护这种关系的从表则通过 mappedNy 属性进行 声明。 mappedBy 的值指向主体的关联属性。例子中, mappedBy 的值为 zip 。最后,不必也 不能再在被关联端( ownedside )定义联接列了,因为已经在主体端声明了。 ? 如果在主体没有声明 @JoinColumn ,系统自动进行处理:在主表( owner?table )中将创建联 接列,列名为:主体的关联属性名 + 下划线 + 被关联端的主键列名。上面的例子中是 zip_id, 因为 Trousers 中的关联属性名为 zip , TrousersZip 的主键是 id

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档