如何在 Hibernate 中使用主键 class 对象获取外键 class 对象
How to get foreign key class object using primary key class object in Hibernate
我需要在 Hibernate 中使用主键 class 对象获取外键 class 对象。
Example:
Class A {
Id A_id; //primary key
String name;
}
Class B {
Id B_id; //primary key
Id A_id; //Foreign key
String name;
}
Noe 我想使用 Class A 的对象使用 Hibernate 映射获取 Class B 的对象。
请帮我解决这个问题。
您应该使用休眠关系注释:
Class A {
@Id
Id A_id; //primary key
String name;
}
Class B {
@Id
Id B_id; //primary key
@ManyToOne
@JoinColumn(name="a_id", nullable=false)
A a; //Foreign key
String name;
}
备注:
- 我假设您的关系是多对一的,如果不是,您应该使用另一个注释(请参阅 hibernate/jpa 文档中的 @OneToOne 和 @OneToMany)
- 记得正确注释其余代码(例如,类 中的@Entity 和@Table 注释)
- 你的 ID 应该有正确的类型(在大多数情况下它很长)
编辑:
Class A {
@Id
Id A_id; //primary key
String name;
@OneToOne(mappedBy="a_id")
B b;
}
其中 "a_id" 是 B table 中外键列的名称。因为它是一对一的关系,所以您需要确保每个 A 实体只能与一个 B 实体相关联。否则,您应该使用一对多关系和 return 集合或 B 的列表。
我需要在 Hibernate 中使用主键 class 对象获取外键 class 对象。
Example:
Class A {
Id A_id; //primary key
String name;
}
Class B {
Id B_id; //primary key
Id A_id; //Foreign key
String name;
}
Noe 我想使用 Class A 的对象使用 Hibernate 映射获取 Class B 的对象。
请帮我解决这个问题。
您应该使用休眠关系注释:
Class A {
@Id
Id A_id; //primary key
String name;
}
Class B {
@Id
Id B_id; //primary key
@ManyToOne
@JoinColumn(name="a_id", nullable=false)
A a; //Foreign key
String name;
}
备注:
- 我假设您的关系是多对一的,如果不是,您应该使用另一个注释(请参阅 hibernate/jpa 文档中的 @OneToOne 和 @OneToMany)
- 记得正确注释其余代码(例如,类 中的@Entity 和@Table 注释)
- 你的 ID 应该有正确的类型(在大多数情况下它很长)
编辑:
Class A {
@Id
Id A_id; //primary key
String name;
@OneToOne(mappedBy="a_id")
B b;
}
其中 "a_id" 是 B table 中外键列的名称。因为它是一对一的关系,所以您需要确保每个 A 实体只能与一个 B 实体相关联。否则,您应该使用一对多关系和 return 集合或 B 的列表。