在JPA项目中,当我为实体生成表时,看不到在数据库端创建的任何表外键约束。
我得出的结论是,JPA无法在数据库中创建表外键约束,并且引用完整性是在JPA(在应用程序端)而不是数据库中强制实施的。
有人可以确认吗?
答案 0 :(得分:1)
根据JPA 2.2 specification,持久性管理器应创建外键约束。例如,在一对一映射的情况下:
假设:
实体A引用了实体B的单个实例。
实体B引用了实体A的单个实例。
实体A被指定为关系的所有者。
以下映射默认设置适用:
实体A映射到名为A的表。
实体B映射到名为B的表。
表A包含表B的外键。外键列名称由以下内容的串联形成:关系属性的名称或实体A的字段;表B中的主键列的名称。外键列的类型与表B的主键相同,并且具有唯一的键约束。