说,我有以下实体:
@Entity public class A { @Id @GeneratedValue private Long id; @Embedded private B b; //getters and setters } @Embeddable public class B { @OneToMany private List<C> cList; //getters and setters } @Entity public class C { @Id @GeneratedValue private Long id; //other fields, getters and setters }
通过结合使用模式自动生成功能,Hibernate我得到了一个附加表,其中包含A和之间的映射C。但是,我想实现通过添加一个一对多的关系A的 编号 为C( 例如,没有附加表 )。
Hibernate
A
C
这可能吗?如果是,我应该使用什么注释来创建这种映射?
通常,使用@JoinColumn批注是可能的。它也适用于可嵌入对象。
@OneToMany @JoinColumn(name="A_ID") private List<C> cList;
如果您对embeddable中指定的列的A_ID名称不满意,则可以覆盖实体A中的列名称:
@AssociationOverride(name= "cList", joinColumns = @JoinColumn(name="SOME_NAME_FOR_JOIN_COLUMN_IN_TABLE_C")) @Embedded private B b;