@JoinColumn可以在关系的两边使用。现在的问题是关于使用
@JoinColumn上
@OneToMany侧(极少数情况下)。这里的重点是物理信息重复(列名)以及未优化的SQL查询,这会产生一些其他
UPDATE语句。
根据文件:
由于多对一的(几乎)总是所有者侧的在JPA规范的双向关系中,一对多关联是通过注解
@oneToMany(mappedBy=...)
@Entitypublic class Troop { @oneToMany(mappedBy="troop") public Set<Soldier> getSoldiers() { ...}@Entitypublic class Soldier { @ManyToOne @JoinColumn(name="troop_fk") public Troop getTroop() { ...}
TroopSoldier通过troop属性具有双向的一对多关系。你不必(不必)在
mappedBy侧面定义任何物理映射。
要以一对多方为拥有方映射双向一对多,你必须删除
mappedBy元素并将多对数设置
@JoinColumn为
as insertable和
updatablefalse。此解决方案未经过优化,将产生一些其他UPDATE语句。
@Entitypublic class Troop { @oneToMany @JoinColumn(name="troop_fk") //we need to duplicate the physical information public Set<Soldier> getSoldiers() { ...}@Entitypublic class Soldier { @ManyToOne @JoinColumn(name="troop_fk", insertable=false, updatable=false) public Troop getTroop() { ...}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)