我很难理解下面的documentation
有什么评论


我们需要复制物理


是什么意思?

使用insertable = false,updatable = false有什么意义?
拜托,你能帮忙吗?


将一对多映射为一对多的双向映射
拥有方面,您必须删除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() {

    ...

}

最佳答案

我们需要复制物理


这意味着Hibernate将链接到troop_fk实体中的Soldier列以与Troop实体连接。并且我们必须写出连接TroopSoldier的列的物理名称。


使用insertable = false,updatable = false有什么意义?


由于它是Troop实体的外键,因此由于约束而无法编辑。首先创建Troop,然后在此Soldier中添加Troop

当拥有方是OneToMany一方时,此示例有关OneToMany映射,因此该一方拥有关系,我们假定此一方首先创建。您可以删除insertable=false, updatable=false,但是如果您的数据库中有约束,并尝试使用新的Soldier对象创建Troop,则会出现约束违反错误,因为Troop表中不存在此新的Troop实体。

10-08 14:20