Spring Data JPA中的mappedBy

JPA,在@OneToMany里加入mappedBy属性避免生成中间表

mappedBy 单向关系不需要设置该属性,双向关系必须设置,避免双方都建立外键字段。数据库中1对多的关系,关联关系总是被多方维护的即外键建在多方,我们在单方对象的@OneToMany(mappedby="")把关系的维护交给多方对象的属性去维护关系。

对于mappedBy复习下:
a) 只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性;
b) mappedBy标签一定是定义在the owned side(被拥有方的),他指向theowning side(拥有方);
c) 关系的拥有方负责关系的维护,在拥有方建立外键。所以用到@JoinColumn
d)mappedBy跟JoinColumn/JoinTable总是处于互斥的一方

这里的维护关联关系,拿多对多来说就是中间表,在不设置cascade的情况下,中间表由负责维护关联关系的一方维护

参考链接:
https://www.cnblogs.com/hyl82...
http://www.mamicode.com/info-...
https://www.cnblogs.com/power...

你可能感兴趣的:(jpa)