Java 如何映射主键组件和外键具有相同列名的Hibernate实体?

Java 如何映射主键组件和外键具有相同列名的Hibernate实体?,java,hibernate,jpa,persistence,many-to-one,Java,Hibernate,Jpa,Persistence,Many To One,我对复合主键和外键具有相同的列名有问题 范例 表A 主键(ID,新的\u ID) 表B 主键(ID,新的\u ID) FK(A\U ID,新的\U ID) 我以这种方式将实体B的关系映射到A @ManyToOne @JoinColumns({@JoinColumn(name = "A_ID", referencedColumnName = "ID"), @JoinColumn(name = "NEW_ID", referencedColumnName = "NEW_ID")}) 当我试

我对复合主键和外键具有相同的列名有问题

范例

表A 主键(ID,新的\u ID)

表B 主键(ID,新的\u ID) FK(A\U ID,新的\U ID)

我以这种方式将实体B的关系映射到A

@ManyToOne
@JoinColumns({@JoinColumn(name = "A_ID", referencedColumnName = "ID"),
    @JoinColumn(name = "NEW_ID", referencedColumnName = "NEW_ID")})
当我试图保存B时,我得到一个无效索引的错误

所以我猜它也试图设置新的_ID两次,并得到这个错误

我没有选择将一列设置为可插入,将可更新设置为false


有人能帮我吗?

我可以分享的一个技巧是制作
hibernate.hbm2ddl.auto=create
,看看hibernate在做什么,这将帮助你调试,而且让
显示出sql=true
,你一定会明白这个配置会导致什么结果

有关注释用法的详细信息,请参阅

谢谢 阿比