![](/img/trans.png)
[英]Hibernate: How to distinguish two uni-directional relationship and one bi-directional relationship?
[英]Hibernate : @JoinColumn behaviour in uni-directional and bi-directional mapping
我是Hibernate的新手,我正在尝试学习映射策略。 现在我能够实现单向和双向映射。我发现在uni-directional
映射的情况下严格需要@JoinColumn
,但在bi-directional
映射的情况下则不然。
为什么在uni-directional
映射的情况下需要@JoinColumn
或@JoinTable
,但在bi-directional
映射的情况下是可选的?
在双向映射的情况下,我不会说它是可选的。 它只是在拥有方指定,这意味着在自有端指定它是可选的和冗余的。 这也是不可取的,因为当连接列名称发生变化时,您必须在两个类中进行更改。
我做了一些测试,Hiberante会允许它......但是为什么要这样做呢。
由于单向映射仅配置了拥有方,并且您不希望从关系的另一侧加入这些实体,因此暗示:
@JoinColumn
(适用于单向@ManyToOne)
要么
@JoinTable
(适用于单向@OneToMany)
必须使用。
试着看看这篇文章: 例子
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.