Java 如何在@OneToOne与@JoinColumn和@MapsId的关系中设置外键名
在以下示例中(来自): 我在Java 如何在@OneToOne与@JoinColumn和@MapsId的关系中设置外键名,java,hibernate,foreign-keys,hibernate-5.x,Java,Hibernate,Foreign Keys,Hibernate 5.x,在以下示例中(来自): 我在PostDetails和Post实体之间存在单向关系,使用@MapsId将Post的ID重用为PostDetails的ID 除此之外,我还添加了 @JoinColumn(foreignKey = @ForeignKey(name = "fk_post")) 因为我想给外键指定自定义名称。不幸的是,Hibernate忽略了我的自定义名称,并为外键分配了自己随机生成的名称 因此,问题是在这种情况下(使用@MapsId时)如何设置外键名?我尝试不用使用不推荐使用的Hibe
PostDetails
和Post
实体之间存在单向关系,使用@MapsId
将Post
的ID重用为PostDetails
的ID
除此之外,我还添加了
@JoinColumn(foreignKey = @ForeignKey(name = "fk_post"))
因为我想给外键指定自定义名称。不幸的是,Hibernate忽略了我的自定义名称,并为外键分配了自己随机生成的名称
因此,问题是在这种情况下(使用@MapsId
时)如何设置外键名?我尝试不用使用不推荐使用的Hibernate@ForeignKey
注释就可以离开
我测试过的Hibernate版本是5.2.12
和5.2.13
我希望我遗漏了一些东西,但考虑到Hibernate在以前的版本中有多少关于FK名称的问题,我觉得这似乎是一个Hibernate bug
更新
我创建了@JoinColumn的.useName属性。
@JoinColumn(name=”“)尽管如此,Hibernate 5.3.15仍然存在问题。Hibernate Jira的问题与此类似:例如@JoinColumn(name=“pidFk”)
@JoinColumn(foreignKey = @ForeignKey(name = "fk_post"))