Java Hibernate:@JoinColumn在单向和双向映射中的行为
我不熟悉Hibernate,我正在尝试学习映射策略。现在我能够实现单向和双向映射。我发现在Java Hibernate:@JoinColumn在单向和双向映射中的行为,java,hibernate,jpa,Java,Hibernate,Jpa,我不熟悉Hibernate,我正在尝试学习映射策略。现在我能够实现单向和双向映射。我发现在单向映射的情况下严格需要@JoinColumn,而在双向映射的情况下则不需要 为什么@JoinColumn或@JoinTable在单向映射的情况下是必需的,但在双向映射的情况下是可选的?我不认为在双向映射的情况下是可选的。 它只是在拥有方指定的,这意味着在拥有方指定它是可选的和冗余的。这也是不可取的,因为当连接列名更改时,您必须在两个类中进行更改 我做了一些测试,Hibernate会允许的。。但是,为什么要
单向
映射的情况下严格需要@JoinColumn
,而在双向
映射的情况下则不需要
为什么
@JoinColumn
或@JoinTable
在单向映射的情况下是必需的,但在双向映射的情况下是可选的?
我不认为在双向映射的情况下是可选的。
它只是在拥有方指定的,这意味着在拥有方指定它是可选的和冗余的。这也是不可取的,因为当连接列名更改时,您必须在两个类中进行更改
我做了一些测试,Hibernate会允许的。。但是,为什么要这样做呢
由于单向映射只配置了拥有方,并且您不希望从关系的另一端加入这些实体,因此,暗示:
@JoinColumn
(适用于单向@manytone)
或
@JoinTable
(适用于单向@OneToMany)
必须使用
试着浏览一下这篇文章:我不会说它在双向映射的情况下是可选的。 它只是在拥有方指定的,这意味着在拥有方指定它是可选的和冗余的。这也是不可取的,因为当连接列名更改时,您必须在两个类中进行更改 我做了一些测试,Hibernate会允许的。。但是,为什么要这样做呢 由于单向映射只配置了拥有方,并且您不希望从关系的另一端加入这些实体,因此,暗示:
@JoinColumn
(适用于单向@manytone)
或
@JoinTable
(适用于单向@OneToMany)
必须使用
试着浏览一下这篇文章: