我是Hibernate的新手,我正在尝试学习映射策略。现在我能够实现单向和双向映射。我发现在@JoinColumn
映射的情况下严格需要uni-directional
,但在bi-directional
映射的情况下不是。
为@JoinColumn
映射时需要@JoinTable
或uni-directional
,bi-directional
映射时可选;
答案 0 :(得分:0)
在双向映射的情况下,我不会说它是可选的。 它只是在拥有方指定,这意味着在自有端指定它是可选的和冗余的。这也是不可取的,因为当连接列名称改变时,你必须在两个类中进行更改。
我做了一些测试,Hiberante会允许它......但是为什么要这样做呢。
由于单向映射只配置了拥有方,并且您不希望从关系的另一端加入这些实体,因此暗示:
@JoinColumn
(适用于单向@ManyToOne)
或
@JoinTable
(适用于单向@OneToMany)
。
尝试阅读本文:examples