【发布时间】:2021-02-11 06:59:14
【问题描述】:
我在数据库中有多个表具有完全相同的列和签名。 所有表都是基于年份创建的,就像 2020 年的所有数据都在一个表中,而 2021 年的所有数据都在另一个表中。
是否可以将单个实体用于多个表?
【问题讨论】:
我在数据库中有多个表具有完全相同的列和签名。 所有表都是基于年份创建的,就像 2020 年的所有数据都在一个表中,而 2021 年的所有数据都在另一个表中。
是否可以将单个实体用于多个表?
【问题讨论】:
是的,这是可能的。您可以在单个实体类中指定表名并为其添加前缀。
@Entity@Table(name="student")@SecondaryTables({
@SecondaryTable(name="name", pkJoinColumns={
@PrimaryKeyJoinColumn(name="id", referencedColumnName="student_id") }),
@SecondaryTable(name="address", pkJoinColumns={
@PrimaryKeyJoinColumn(name="id", referencedColumnName="student_id") })})
公共类学生实现可序列化{
@Id
@Column(name="student_id")
private int studentId;
@Column(table="name")
private String name;
@Column(table="address")
private String address;
public Student(){}
public Student(int studentId){
this.studentId=studentId;
}
//getters and setters
}
你可以使用这段代码。
【讨论】: