我很难理解以下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() {
...
}
答案 0 :(得分:1)
我们需要复制物理
这意味着Hibernate将链接到Soldier
实体中的列Troop
以与Troop
实体连接。我们必须编写连接Soldier
和Troop
的列的物理名称。
使用insertable = false,updatable = false?
是什么意思
因为它是Troop
实体的外键,并且由于约束而无法编辑它。首先创建Soldier
,然后在此Troop
中添加OneToMany
。
这个关于OneToMany
地图的示例,当拥有边是insertable=false, updatable=false
边时,所以这边有自己的关系,我们假设这边创建了第一个。您可以删除Soldier
,但如果您的数据库中有约束并尝试使用新的Troop
对象创建Troop
,则可能会出现约束违规错误,因为这个新的Troop
实体在{{1}}表格中不存在。