1

根据休眠文档:

要将双向一对多映射,将一对多作为拥有方,您必须删除 mappedBy 元素并将多对一 @JoinColumn 设置为可插入且可更新为 false。此解决方案未优化,会产生一些额外的 UPDATE 语句。

@Entity  
public class Troop {  
    @OneToMany  
    @JoinColumn(name="troop_fk") //we need to duplicate the physical information  
    public Set<Soldier> getSoldiers() {  
    ...  
}  

@Entity  
public class Soldier {  
    @ManyToOne  
    @JoinColumn(name="troop_fk", insertable=false, updatable=false)  
    public Troop getTroop() {  
    ...  
}  

我的问题是:

  1. 这样的设置有什么好处。为什么不创建 Manytonone 方作为拥有方
  2. 为什么在这个设置中需要这两个值:insertable=false, updatable=false
4

0 回答 0