本文主要是介绍ManyToOne 详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一 意义: 用来定义多对于一的表关联关系
(多指的是本实体的外键字段,可以有多个重复的值, 一指的是被关联的实体的主键, 只能是一个值)
二 他自带的属性(全部可选)
1 cascade
实例: @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.Remove, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.All})
级联(不懂意思参考jpa分类里的文章解释), 可以有5个值可选
* CascadeType.PERSIST :级联新建* CascadeType.REMOVE : 级联删除* CascadeType.REFRESH :级联刷新* CascadeType.MERGE : 级联更新* CascadeType.ALL : 以上全部四项
2 fetch
实例: @ManyToOne(fetch=FetchType.EAGER, fetch=FetchType.LAZY)
FetchType.EAGER: 立即加载, 获取关联实体
FetchType.LAZY: 懒加载, 取出数据的时候,关联的数据实体并不会取出来. 在session外就不能再调用关联实体的方法
3 optional
定义该关联类是否必须存在.
为false时, 2方必须存在, 关联关系为inner join(2表至少存在1个匹配).
为true时, 关系被维护方(1方)可以不存在关联关系为 left join, 结果依然返回的是关系维护端的.
4 targetEntity
表示关联的实体的类型, 默认是该成员属性对应的类类型, 通常不需要提供定义.
如果集合中已经指定了具体类型就不需要使用targetEntity, 否则就要指定targetEntity = **.class
这篇关于ManyToOne 详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!