JPA总结——实体关系映射(一对多@OneToMany)
来源:互联网 发布:人工智能程序原理 编辑:程序博客网 时间:2024/05/18 01:48
注意:本文出自“阿飞”的博客 ,如果要转载本文章,请与作者联系!
并注明来源: http://blog.sina.com.cn/s/blog_49fd52cf0100scql.html
一对多模型(单向)
说明: 一个客户对应多个地址,通过客户可以获得该客户的多个地址的信息。客户和地址是一对多的关系,并且客户与地址是单向关联的关系。
映射策略
# 外键关联:两个表的关系定义在一个表中;
# 表关联:两个表的关系单独定义一个表中通过一个中间表来关联。
映射策略——外键关联
表结构如下:
表address中的customer_id为customer表中的id的值,通过customer_id可以找到相应的customer的记录。
将表customer映射为CustomerEO实体,代码如下:
一对多@OneToMany注解说明:
@Target({METHOD, FIELD}) @Retention(RUNTIME)
public @interface OneToMany {
}
# targetEntity属性表示默认关联的实体类型,默认为当前标注的实体类;
因为一对多的实体集合时保存在集合类中,因此必须指明集合类中保存的具体类型:
1)指定集合泛型的具体类型;如:public Collection<AddressEO> getAddress() {...
2)指定targetEntity属性类型;如:@OneToMany(targetEntity=AddressEO.class,casade={CascadeTypeType.ALL})
# cascade属性表示与此实体一对一关联的实体的联级样式类型。联级样式上当对实体进行操作时的策略。
# fetch属性是该实体的加载方式,有两种:LAZY和EAGER。默认为惰性加载,一般也建议使用惰性加载。
# mappedBy属性用于双向关联实体时使用。
映射策略——表关联
在具体的设计中我们也会使用到使用另外单独的一张表来关联实体关系。比如customer和address例子中,我们增加一张ref_customer_address表保存以上两表的关系。
表结构如下:
将表customer映射为CustomerEO实体,代码如下:
表关联(@JoinTable)注解说明:
@Target({METHOD, FIELD})
public @interface JoinTable{
}
# name属性为连接两个表的表名称。若不指定,则使用默认的表名称,格式如下:
# joinColumn属性表示,在保存关系的表中,所保存关联关系的外键的字段,并配合@JoinColumn标记使用;
# inverseJoinColumn属性与joinColumn类似,它保存的是保存关系的另外一个外键字段;
# catalog和schema属性表示实体指定点目录名称或数据库名称;
# uniqueConstraints属性表示该实体所关联的唯一约束条件,一个实体可以有多个唯一约束条件,默认没有约束;
注意:@JoinTable不仅能够定义一对多的关联,也可以定义多对多表的关联。
默认关联
如果使用了表关联,并且该表又设置了外键,则在映射的实体关系时可以使用默认的映射关系设置,举例如下:
表结构如下:
映射实体CustomerEO的代码如下:
0 0
- JPA总结——实体关系映射(一对多@OneToMany)
- JPA总结——实体关系映射(一对多@OneToMany)
- JPA总结——实体关系映射(一对多@OneToMany)
- JPA总结——实体关系映射(一对多@OneToMany)
- 实体关系映射(一对多@OneToMany)
- JPA总结——实体关系映射(一对一@OneToOne)
- JPA总结——实体关系映射(一对一@OneToOne)
- JPA总结——实体关系映射(一对一@OneToOne)
- JPA总结——实体关系映射(一对一@OneToOne)
- HIbernate关系映射--单向一对多@OneToMany
- hibernate 学习四——一对多关系(OneToMany)
- Hibernate关系映射(五)一对多、多对一双向关联@OneToMany @OneToMany Annotation方式
- Hibernate实体映射——单边的一对多关系
- JPA——实体关系映射
- JPA学习笔记(8)——映射一对多关联关系
- JPA学习笔记(8)——映射双向一对多关联关系
- JPA学习笔记(8)——映射一对多关联关系
- JPA学习笔记(9)——映射双向一对多关联关系
- [node] ejs模板手册
- HDU 1520 Anniversary party(有向边树形DP)
- 使用python获取传入目录下apk文件的所有图标
- SpringMVC+Hibernate4+Spring3整合开发实现CRUD
- 通过URL Scheme传递参数
- JPA总结——实体关系映射(一对多@OneToMany)
- java程序设计基础_陈国君版第五版_第五章例题
- JSON与XML的区别比较
- Oracle 树结构查询
- Android 蓝牙
- 矢量图动画
- 上传excel文件
- MFC文件操作
- Log4j日志框架详解