java - hibernate : @JoinColumn behaviour in uni-directional and bi-directional mapping

标签 java hibernate jpa

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

为什么单向映射时需要@JoinColumn@JoinTable,而双向映射时可选?

最佳答案

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

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

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

@JoinColumn(适用于单向@ManyToOne)

@JoinTable(适用于单向@OneToMany)

必须使用。

尝试阅读这篇文章:examples

关于java - hibernate : @JoinColumn behaviour in uni-directional and bi-directional mapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42345114/

相关文章:

java - 没有内部类的构建器模式

java - 为什么JAVA中getWidth函数返回的值更多?

java - 我可以将 "str".equals(obj) 与 toString 实现一起使用吗?

java - 有没有办法使用 Spring Boot、Liquibase 和 sql-script 进行集成测试?

java - jpa中如何调用表函数

java - java中的Matlab函数imresize

java - Spring : detached entity passed to persist

hibernate - 如何在多项目 Maven 中配置 Log4j

java - Maven 3.2.1 + Hibernate 4.3.4 - 无法构建实体管理器工厂 - 由 : ParameterizedTypeImpl cannot be cast to java. lang.Class 引起

JPA ManyToMany,JoinTable 怎么会有属性?