hibernate多对一及一对一关联映射学习笔记
程序员文章站
2022-03-02 13:51:07
...
首先感谢尚学堂的王勇老师!!!
[b]多对一[/b]
会在多的一端加入一个外键,指向一的一端,这个外键是由中的column属性定义的,如果忽略了这个属性那么默认的外键与实体的属性一致。
标签的定义示例:
使用级联:
默认不使用级联:
注:cascade="all|none|save-update|delete"
这种方式下数据库中多的一端产生外键。如果persistent状态的对象引用transient状态的对象会抛出TransientObjectException异常。
[b] 一对一主键关联(单向)[/b]
让两个实体对象的id保持相同,这样可以避免多余的字段被创建
[color=indigo]一对一主键关联映射中,默认了cascade属性[/color]
主键充当外键
[b] 一对一主键关联(双向)[/b]
[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中单实体映射时出现空指针异常解决办法
下一篇: Tomcat 内存溢出对应解决方式
推荐阅读
-
hibernate多对一关联映射出现的java.lang.*Error问题
-
Mybatis04—注解开发实现CRUD以及实现一对一、一对多及多对多复杂关系映射
-
Hibernate的一对一,一对多/多对一关联保存的实现
-
Hibernate关联关系映射之一对一关联关系
-
Hibernate关联关系映射之一对一关联关系
-
Hibernate框架--学习笔记(中):一对多配置、多对多配置
-
MyBatis - XML映射文件(6) - 关联(一对一、多对一关系映射)
-
Hibernate ManyToOne Mappings 多对一关联映射
-
6.Hibernate关联映射注解之一对多双向外键关联
-
java鬼混笔记:Hibernate:3、一对一关系之外键单向和双向关联