Hibernate:@JoinColumn在单向和双向映射中的行为

时间:2017-02-20 12:53:07

标签: java hibernate jpa

我是Hibernate的新手,我正在尝试学习映射策略。现在我能够实现单向和双向映射。我发现在@JoinColumn映射的情况下严格需要uni-directional,但在bi-directional映射的情况下不是。

@JoinColumn映射时需要@JoinTableuni-directionalbi-directional映射时可选;

1 个答案:

答案 0 :(得分:0)

在双向映射的情况下,我不会说它是可选的。 它只是在拥有方指定,这意味着在自有端指定它是可选的和冗余的。这也是不可取的,因为当连接列名称改变时,你必须在两个类中进行更改。

我做了一些测试,Hiberante会允许它......但是为什么要这样做呢。

由于单向映射只配置了拥有方,并且您不希望从关系的另一端加入这些实体,因此暗示:

@JoinColumn(适用于单向@ManyToOne)

@JoinTable(适用于单向@OneToMany)

必须使用

尝试阅读本文:examples