JPA学习-03
一、单向一对多
特点:性能差,不怎么用,有集合默认懒加载
@OneToMany
1.private Set<T> t = new HashSet<>()
2.private List<T> t = new ArrayLiat<>()
其中1为无序不重复(性能好),2为有序课重复
注:单向一对多,多对一,双向多对一,一对多,表结构一模一样
二、双向多对一、一对多
保证维护关系的列是同一列
JoinColumn(name="xxx")
一方交给多方维护(外键在多方)
MappedBy=“xx”映射关系交给对应类中字段去维护
三、级联
分为PERSIST、UPDATE、REMOVE、ALL
一般能不用就不用,特别是删除
组合关系必须使用(cascade=Cascade.Type.All orphanRemoval=ture)
在开发中:单据都是组合关系(其余特殊的看需求)
ophanRemoval:孤儿删除
remove(其中一个)
clean(全部)
四、多对多
尽量不要使用级联
joinTable(name=“xxx”,joincolumn=@JoinColumn(name=“aaa”)
inverseJoinColum=@JoinColumn(name=“bbb”))
五、一对一
共享主键(扩展性不强,不建议使用)
唯一外键(扩展性强,建议使用)
主表和从表:
外键在哪从表就在哪