Hibernate 同一实体的两个属性
我有两个实体Hibernate 同一实体的两个属性,hibernate,Hibernate,我有两个实体 @Entity class A { @Id private Long Id; //attributes of A } @Entity class B { xxx private A instanceOfA_1; xxx private A instanceOfA_2; } 如你所见,我在B类中有两个类型为A的属性 在Hibernate中如何注释这两个属性? 最后,在数据库中,我希望在表B中找到两列,每列包含表A中的
@Entity
class A {
@Id
private Long Id;
//attributes of A
}
@Entity
class B {
xxx
private A instanceOfA_1;
xxx
private A instanceOfA_2;
}
如你所见,我在B类中有两个类型为A的属性
在Hibernate中如何注释这两个属性?
最后,在数据库中,我希望在表B中找到两列,每列包含表A中的键id
我想这是一个简单的ORM问题,但我没能独自解决
编辑:在上面的回答之后,你建议我做以下事情
@Entity
class A {
@Id
private Long Id;
//attributes of A
}
@Entity
class B {
@ManyToOne
private A instanceOfA_1;
@ManyToOne
private A instanceOfA_2;
}
这将创建以下表格
Table A
id
attributes
Table B
a_id_1
a_id_2
如何指定表B中列的名称(即a_id_1和a_id_2)?这是一种非常典型的情况,每个列都应加上注释。如果每个关系只有一个B可以与给定A相关,则应使用。如果数据库架构是从实体生成的,则使用@OneToOne时,外键中将有唯一约束 可用于指定外键列的名称:
@JoinColumn(name="preferred_column_name")
这是一种非常典型的情况,每种情况都应该加上注释。如果每个关系只有一个B可以与给定A相关,则应使用。如果数据库架构是从实体生成的,则使用@OneToOne时,外键中将有唯一约束 可用于指定外键列的名称:
@JoinColumn(name="preferred_column_name")
试试这个:
@Entity
class A {
@Id
private Long Id;
}
@Entity
class B {
@ManyToOne
@JoinColumn(name="A_1")
private A instanceOfA_1;
@ManyToOne
@JoinColumn(name="A_2")
private A instanceOfA_2;
}
试试这个:
@Entity
class A {
@Id
private Long Id;
}
@Entity
class B {
@ManyToOne
@JoinColumn(name="A_1")
private A instanceOfA_1;
@ManyToOne
@JoinColumn(name="A_2")
private A instanceOfA_2;
}
谢谢JB,补充回答。用户1446127,添加了指向@JoinColumn文档的说明和链接。谢谢JB,添加到答案中。用户1446127,添加了指向@JoinColumn文档的说明和链接。