java - inverseJoinColumns 是强制性的吗?
问题描述
在 Hibernate 中创建 @ManyToMany() 关联时是否应该定义 inverseJoinColumn?还是 Hibernate 能够根据某个字段名称定义它的值?
joinColumns 怎么样?
解决方案
是的。joinColumns
和inverseJoinColumns
in都是@JoinTable
可选的,这意味着如果你不定义它们,将使用一些默认值。根据其javadoc,默认值具有相同的默认设置@JoinColumn
,即:
以下内容的串联:引用实体的引用关系属性或字段的名称;" "; 引用的主键列的名称。如果实体中没有这样的引用关系属性或字段,则连接列名称由以下内容串联形成:实体名称;" "; 引用的主键列的名称。
但是我不会依赖这些默认值,而是明确地为它们配置一个显式值,以便其他开发人员也可以更容易地理解代码,因为我认为大多数开发人员不想关心和记住这样的默认逻辑。
推荐阅读
- html - Angular 6父/子路由和共享数据
- css - 菜单在 safari 中不可见
- javascript - 动态添加时未触发 JQuery 事件侦听器
- node.js - 无法使用 node.js 执行脚本外壳
- fortran - 在fortran95中读取和写入文件
- powershell - Get-ChildItem 为 Assembly.*.dll 添加排除过滤器但包括 Assembly.Some.*.dll
- emacs - 当 emacs *scratch* 缓冲区打开时自动粘贴剪贴板内容
- json - 如何在一个命令中从对象的差异字段中提取一些值
- asp.net - 使用客户端应用程序测试 Aspnet.security.openidconnect.server
- python - 如何使用 Selenium (Python) 在网页中找到“警报警告”