Jpa 以JoinColumn作为主键的OneToMany

Jpa 以JoinColumn作为主键的OneToMany,jpa,Jpa,情景:A与B有单向一通关系,B与C有单向一通关系: A 1-->*B*-->1 C 在B中,我想要一个复合主键a.ID和C.ID,我必须如何修改它 我的主要问题是,A的ID成为B中的主键。您确实应该避免复合PKs。为什么不按照建议使用自动生成的单列主键?我必须保证A.ID和C.ID的组合是唯一的-这就是为什么我认为复合主键有意义-不?使用唯一约束。这就是它们的作用。好的,但是我如何在B中对a的外键进行唯一约束呢?在A中,我有以下定义:Entitiy A:@JoinColumn(name=“fk_

情景:A与B有单向一通关系,B与C有单向一通关系:

A 1-->*B*-->1 C

在B中,我想要一个复合主键a.ID和C.ID,我必须如何修改它


我的主要问题是,A的ID成为B中的主键。

您确实应该避免复合PKs。为什么不按照建议使用自动生成的单列主键?我必须保证A.ID和C.ID的组合是唯一的-这就是为什么我认为复合主键有意义-不?使用唯一约束。这就是它们的作用。好的,但是我如何在B中对a的外键进行唯一约束呢?在A中,我有以下定义:Entitiy A:@JoinColumn(name=“fk_A”,insertable=false,updateable=false)private List bs=new ArrayList()
fk_A
是表
B
的一列。因此,您在表B中的
[fk\u a,c\u ID]
上添加了一个唯一的约束。