欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

hibernate多对一及一对一关联映射学习笔记

程序员文章站 2022-03-02 13:51:07
...
首先感谢尚学堂的王勇老师!!!

[b]多对一[/b]

会在多的一端加入一个外键,指向一的一端,这个外键是由中的column属性定义的,如果忽略了这个属性那么默认的外键与实体的属性一致。

标签的定义示例:
使用级联:
<many-to-one name="group" column="groupid" cascade="all"/>

默认不使用级联:
 <many-to-one name="group" column="groupid"/>


注:cascade="all|none|save-update|delete"

这种方式下数据库中多的一端产生外键。如果persistent状态的对象引用transient状态的对象会抛出TransientObjectException异常。

[b] 一对一主键关联(单向)[/b]

让两个实体对象的id保持相同,这样可以避免多余的字段被创建

	<id name="id">
<!-- person的主键来源idCard,也就是共享idCard的主键 -->
<generator class="foreign">
<param name="property">idCard</param>
</generator>
</id>
<property name="name"/>
<!-- one-to-one标签的含义,指示hibernate怎么加载它的关联对象,默认根据主键加载,
constrained="true", 表明当前主键上存在一个约束,person的主键作为外键参照了idCard
-->
<one-to-one name="idCard" constrained="true"/>

[color=indigo]一对一主键关联映射中,默认了cascade属性[/color]
主键充当外键

[b] 一对一主键关联(双向)[/b]
相关标签: Hibernate