首页 > 解决方案 > inverseJoinColumns 是强制性的吗?

问题描述

在 Hibernate 中创建 @ManyToMany() 关联时是否应该定义 inverseJoinColumn?还是 Hibernate 能够根据某个字段名称定义它的值?

joinColumns 怎么样?

标签: javahibernate

解决方案


是的。joinColumnsinverseJoinColumnsin都是@JoinTable可选的,这意味着如果你不定义它们,将使用一些默认值。根据其javadoc,默认值具有相同的默认设置@JoinColumn,即:

以下内容的串联:引用实体的引用关系属性或字段的名称;" "; 引用的主键列的名称。如果实体中没有这样的引用关系属性或字段,则连接列名称由以下内容串联形成:实体名称;" "; 引用的主键列的名称。

但是我不会依赖这些默认值,而是明确地为它们配置一个显式值,以便其他开发人员也可以更容易地理解代码,因为我认为大多数开发人员不想关心和记住这样的默认逻辑。


推荐阅读