Hibernate 关系映射注解详解--一对多
来源:互联网 发布:淘宝童装海报素材 编辑:程序博客网 时间:2024/05/18 01:10
一对多和多对一注解及其属性详解:
-------------------------------------------------------------------------------------
@ManyToOne表示一个多对一的映射,该注解标注的属性通常是数据库表的外键
属性:
optional:是否允许该字段为null,该属性应该根据数据库表的外键约束来确定,默认为true
fetch:表示抓取策略,默认为FetchType.EAGER (其实就是设置延迟加载和立即加载)
cascade:表示默认的级联操作策略,可以指定为ALL,PERSIST,MERGE,REFRESH和REMOVE中的若干组合,默认为无级联操作 (见最后cascade属性取值)
targetEntity:表示该属性关联的实体类型.该属性通常不必指定,ORM框架根据属性类型自动判断targetEntity.
-------------------------------------------------------------------------------------
@OneToMany描述一个一对多的关联,该属性应该为集体类型,在数据库中并没有实际字段.
属性:
fetch:表示抓取策略,默认为FetchType.LAZY,因为关联的多个对象通常不必从数据库预先读取到内存
cascade:表示级联操作策略,对于OneToMany类型的关联非常重要,通常该实体更新或删除时,其关联的实体也应当被更新或删除
例如:实体User和Order是OneToMany的关系,则实体User被删除时,其关联的实体Order也应该被全部删除。
mappedBy:
1>只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性;
2>mappedBy标签一定是定义在被拥有方的,他指向拥有方;
理解:在映射双向一对多时会用到,使用时一定是在被拥有方Grade(被Student拥有)中定义,指向拥有方Student中的Grade对象属性。
3>mappedBy可以理解为,拥有方(Student)能够自动维护跟被拥有方(Grade)的关系(下面示例有说明),当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的(即生成中间表);
4>mappedBy跟joinColumn/JoinTable总是处于互斥的一方,可以理解为正是由于拥有方(Student)关联被拥有方的字段(Student中的grade字段)存在,拥有方才拥有了被拥有方。mappedBy这方定义JoinColumn/JoinTable总是失效的,不会建立对应的字段或者表。
- Hibernate 关系映射注解详解--一对多
- Hibernate对象关系映射详解之“一对多”关系映射
- Hibernate注解方式一对多自关联关系映射
- Hibernate学习笔记 -- day08 注解含义、一对多关系映射
- hibernate映射总结详解: 映射一对多双向关联关系
- Hibernate 一对多关系映射
- hibernate一对多关系映射
- Hibernate一对多关系映射
- Hibernate映射一对多关系
- Hibernate一对多关系映射
- Hibernate关系映射一对多
- hibernate一对多关系映射
- hibernate中List一对多映射关系详解
- hibernate中List一对多映射关系详解
- 4、Hibernate 实体关系映射(一、单边一对多关系 注解、xml两种方式)
- hibernate注解方式实现一对多映射
- hibernate注解方式实现一对多映射
- hibernate annotation (注解映射) 一对多
- 华为 CFO 孟晚舟清华演讲:改变世界的都是年轻人
- JVM在JDK8取消了永久代(PermGen)代之元空间(Metaspace)的意义
- java设置隐藏文件或者文件夹
- cmake使用实践(二)
- [RK3288][Android6.0] 使用SD卡升级固件到eMMC
- Hibernate 关系映射注解详解--一对多
- 【JavaScript】Cookie存储
- kali让局域网的内的小伙伴断网
- 利用栈将中缀表达式转换为后缀表达式并进行计算
- 总线概述及常见总线
- Tesseract-OCR 3.02命令行程序的使用
- 讯飞语音合成问题
- 141. Linked List Cycle
- Ubuntu12.04 在右键快捷菜单中添加“Open in Terminal”