Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:@JoinColumn在单向和双向映射中的行为_Java_Hibernate_Jpa - Fatal编程技术网

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

Java Hibernate:@JoinColumn在单向和双向映射中的行为,java,hibernate,jpa,Java,Hibernate,Jpa,我不熟悉Hibernate,我正在尝试学习映射策略。现在我能够实现单向和双向映射。我发现在单向映射的情况下严格需要@JoinColumn,而在双向映射的情况下则不需要 为什么@JoinColumn或@JoinTable在单向映射的情况下是必需的,但在双向映射的情况下是可选的?我不认为在双向映射的情况下是可选的。 它只是在拥有方指定的,这意味着在拥有方指定它是可选的和冗余的。这也是不可取的,因为当连接列名更改时,您必须在两个类中进行更改 我做了一些测试,Hibernate会允许的。。但是,为什么要

我不熟悉Hibernate,我正在尝试学习映射策略。现在我能够实现单向和双向映射。我发现在
单向
映射的情况下严格需要
@JoinColumn
,而在
双向
映射的情况下则不需要


为什么
@JoinColumn
@JoinTable
单向映射的情况下是必需的,但在
双向映射的情况下是可选的?

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

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

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

@JoinColumn
(适用于单向@manytone)

@JoinTable
(适用于单向@OneToMany)

必须使用


试着浏览一下这篇文章:

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

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

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

@JoinColumn
(适用于单向@manytone)

@JoinTable
(适用于单向@OneToMany)

必须使用

试着浏览一下这篇文章: