【发布时间】:2014-04-09 12:05:43
【问题描述】:
问题:似乎我没有正确理解 Hibernate *-to-many 映射的逻辑,或者准确地说是拥有方。
示例(一个拥有方的一对多)
@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() {
...
}
问题:
- 为什么要复制物理信息?以及为什么
Troop表不包含troop_fk字段(请看上面的示例) - Hibernate 是否忽略映射(非所有者)端的所有查询?
- 所有者是否暗示对保存实体的顺序有一些限制?
- 下一句是什么意思?
用 inverse="true" 映射关联的一端不会影响 级联的操作,因为它们是正交的概念。
【问题讨论】:
-
这是 JPA,而不是 Hibernate。这将使搜索信息产生更多结果。如果这是一对多映射,我希望 @OneToMany 端定义 mappedBy 属性而不是连接列。
-
@Gimby 有很多情况。我从 Hibernate 文档中举了这个例子。
标签: java hibernate jpa hibernate-mapping