Spring boot SpringBootJPA,如果我有多个具有相同列名的表,我可以把它们放在同一个实体类中吗?

Spring boot SpringBootJPA,如果我有多个具有相同列名的表,我可以把它们放在同一个实体类中吗?,spring-boot,spring-data-jpa,multiple-columns,Spring Boot,Spring Data Jpa,Multiple Columns,我在自定义SQL语句中使用as子句,在实体类中使用as子句中的名称。使用相同列名的多个表的最佳方式是什么。单独的实体类?您可以有一个抽象类,在这个抽象类中,您将定义所有用列名注释的公共字段,并用 然后,对于共享相同列名称的每个不同表,创建一个扩展抽象类的新类,并用表名对其进行注释 这样,您就不必重复它们共有的列的定义 @MappedSuperclass 抽象类人{ //公共列 @身份证 @列(name=“ID”) 私人长id; @列(name=“AGE”) 私人整数年龄; //getter,se

我在自定义SQL语句中使用as子句,在实体类中使用as子句中的名称。使用相同列名的多个表的最佳方式是什么。单独的实体类?

您可以有一个抽象类,在这个抽象类中,您将定义所有用列名注释的公共字段,并用

然后,对于共享相同列名称的每个不同表,创建一个扩展抽象类的新类,并用表名对其进行注释

这样,您就不必重复它们共有的列的定义

@MappedSuperclass
抽象类人{
//公共列
@身份证
@列(name=“ID”)
私人长id;
@列(name=“AGE”)
私人整数年龄;
//getter,setter,hashCode,equals。。。
}
@实体
类雇员扩展个人{
//此实体将包括“Person”中的“ID”和“AGE”列
@列(name=“SALARY”)
私人薪酬;
//getter,setter,hashCode,equals。。。
}
@实体
班级学生延伸人{
//此实体将包括“Person”中的“ID”和“AGE”列
@列(name=“FIELD”)
私有字符串字段;
//getter,setter,hashCode,equals。。。
}
单实体多表注释
javax.persistence.*
库有一个
@SecondaryTable
注释,可应用于一个实体,该实体可用于将单个实体映射到共享类似列的多个表。但是,您需要在应用于次表的所有成员变量上方包含一个
@列
注释。下面是一个例子

示例实体
在上面的示例中,按照惯例,第一个表(经销商)已应用于所有不带注释的列。但是,您确实需要在所有应用程序变量中包含
table=“

欢迎使用堆栈溢出!您需要提供一个可复制的示例以获得支持。如果没有更多细节,任何人都很难帮助您。底层的Spring数据JPA实现是Hibernate,它允许您使用类型级别
@MappedSuperclass
注释标记的公共字段定义一个抽象类。然后,允许在目标
@Entity
表上扩展它
@Entity
@Table(name = "dealers")
@SecondaryTable(name = "dealers_tmp")
public class Dealer {

    @Id
    @Column(name = "id", table="dealers_tmp")
    private long id;

    @Column(name = "account", table="dealers_tmp")
    private String account;

    @Column(name = "name", table="dealers_tmp")
    private String name;
}