jpa - 使用 JPA 在数据库中创建表外键约束
问题描述
在 JPA 项目中,当我为实体生成表时,我看不到在数据库端创建的任何表外键约束。
我得出的结论是,JPA 无法在数据库中创建表外键约束,并且引用完整性在 JPA(在应用程序端)而不是数据库中强制执行。
有人可以确认是否是这样吗?
解决方案
根据JPA 2.2 规范,持久性管理器应该创建外键约束。例如在一对一映射的情况下:
假如说:
实体 A 引用实体 B 的单个实例。
实体 B 引用实体 A 的单个实例。
实体 A 被指定为关系的所有者。
以下映射默认值适用:
实体 A 映射到名为 A 的表。
实体 B 映射到名为 B 的表。
表 A 包含表 B 的外键。外键列名称由以下内容串联形成:实体 A 的关系属性或字段的名称;表B中主键列的名称。外键列与表B的主键类型相同,并且有唯一键约束。
推荐阅读
- php - phpspreadsheet没有检索某些单元格的值
- php - 2个不同表的乘法和结果为假
- javascript - 附加到我的电子邮件中的这个远程 javascript 做什么?“http://rum-static.pingdom.net/prum.min.js”
- recursion - Erlang、Last Call Optimization、lambda 函数以及如何防止堆栈增长
- node.js - 如何在 cPanel 上托管节点反应 Web 应用程序?
- python - 如何在python中使用其他文件的字符串打开文件?
- java - 保护 JMX 并防止远程客户端使用 javax.management.loading.MLet 注册任意 Mbeans JMX
- regex - 匹配包含混合文本和数字的 URL 产品着陆页,同时排除产品变体
- fabricjs - Fabric.js 版本 2.x getActiveGroup() 折旧和破坏应用程序
- php - 任务正在删除,但页面需要重新引用