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

时间:2013-07-16 17:14:03

标签: java hibernate jpa persistence many-to-one

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

示例

表A. PK(ID,NEW_ID)

表B. PK(ID,NEW_ID) FK(A_ID,NEW_ID)

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

@ManyToOne
@JoinColumns({@JoinColumn(name = "A_ID", referencedColumnName = "ID"),
    @JoinColumn(name = "NEW_ID", referencedColumnName = "NEW_ID")})

当我尝试保存B.我收到无效索引错误。

所以我猜它也试图设置两次NEW_ID并收到此错误。

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

任何人都可以帮助我

1 个答案:

答案 0 :(得分:0)

我可以分享的一个提示是制作hibernate.hbm2ddl.auto=create并查看hibernate正在做什么,这将有助于您调试,而且制作show_sql=true,您一定会明白这个配置会产生什么。

有关注释使用的详细信息,请参阅http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html

由于 ABHI