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…