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”))

五、一对一

共享主键(扩展性不强,不建议使用)

唯一外键(扩展性强,建议使用)

主表和从表:

外键在哪从表就在哪

 

posted @ 2019-03-07 23:33  Dragon_Smile  阅读(216)  评论(0编辑  收藏  举报