我可以为多个表使用一个实体吗?

Posted

技术标签:

【中文标题】我可以为多个表使用一个实体吗?【英文标题】:Can I use a single entity for multiple tables? 【发布时间】:2021-02-11 06:59:14 【问题描述】:

我在数据库中有多个表具有完全相同的列和签名。 所有表都是基于年份创建的,就像 2020 年的所有数据都在一个表中,而 2021 年的所有数据都在另一个表中。

是否可以将单个实体用于多个表?

【问题讨论】:

***.com/questions/18283919/… 这对您有帮助吗? 【参考方案1】:

是的,这是可能的。您可以在单个实体类中指定表名并为其添加前缀。

@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

你可以使用这段代码。

【讨论】:

我只想在 1 个表中插入记录,即如果财政年度是 2021 年,那么记录应该插入到 2021 年的表中,而不是 2020 年。如果这可以实现吗?另外,我将如何使用单个实体获取和更新当年指定的记录?

以上是关于我可以为多个表使用一个实体吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在不创建实体类的情况下对大型 sql 使用休眠命名查询吗?

如果您想通过 Core Data 使用多个实体,您需要为每个实体提供一个托管对象上下文吗?

使用jpa存储库查询多个表

实体框架:使用多个架构还是两个不同的数据库?

在 ER 图上,我可以有一个依赖多个实体的弱实体吗?

实体框架 - 将表拆分为具有重叠条件的多个实体