Java 如何映射主键组件和外键具有相同列名的Hibernate实体?
我对复合主键和外键具有相同的列名有问题 范例 表A 主键(ID,新的\u ID) 表B 主键(ID,新的\u ID) FK(A\U ID,新的\U ID) 我以这种方式将实体B的关系映射到AJava 如何映射主键组件和外键具有相同列名的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")}) 当我试
@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
,你一定会明白这个配置会导致什么结果
有关注释用法的详细信息,请参阅
谢谢
阿比