【发布时间】:2019-02-25 12:04:06
【问题描述】:
我想在 Address 实体中保存 User 和 Employee 实体的地址。 如何设计我的地址实体,以便我能够保存用户和员工的地址。
【问题讨论】:
-
互联网上的许多 JPA 文档告诉你做什么?
标签: java mysql hibernate spring-boot jpa
我想在 Address 实体中保存 User 和 Employee 实体的地址。 如何设计我的地址实体,以便我能够保存用户和员工的地址。
【问题讨论】:
标签: java mysql hibernate spring-boot jpa
在 User 和 Employee 子类中扩展 Person 类。
@MappedSuperclass
抽象类人{
@ManyToOne @JoinColumn(name="ADDRESS")
受保护的地址地址;
}
@实体
员工类扩展人{}
@实体
类用户扩展人{}
【讨论】:
您有两种选择,一种是使地址实体可嵌入,
@Embeddable
public class Address {
....
}
@Entity
public class User {
.....
@Embedded
private Address address;
}
@Entity
public class Employee {
.....
@Embedded
private Address address;
}
这将复制 Employee 表和 User 表中的列。
如果要共享地址,另一种方法是将地址用作表格:
@Entity
public class Address {
....
}
@Entity
public class User {
.....
@ManyToOne
private Address address;
}
@Entity
public class Employee {
.....
@ManyToOne
private Address address;
}
【讨论】: