在Spring数据JPA中映射两个相同的表(具有差异表名称)以进行get,post和put调用

时间:2019-05-24 17:06:19

标签: hibernate spring-boot jpa

我想使用继承或一些干净的JPA逻辑,这样我就不必复制代码来使用spring data jpa对2个相同的表对象执行POST,GET和PUT操作

我有2个相同的表,分别是1)合同雇员2)永久雇员

两者的结构相同

CREATE TABLE permanentemployee (
  empid int(11) NOT NULL,
  age int(11) NOT NULL,
  departmentname varchar(255) NOT NULL,
  empname varchar(255) DEFAULT NULL,
  salary int(11) NOT NULL,
  PRIMARY KEY (empid));

CREATE TABLE contractemployees(
  empid int(11) NOT NULL,
  age int(11) NOT NULL,
  departmentname varchar(255) NOT NULL,
  empname varchar(255) DEFAULT NULL,
  salary int(11) NOT NULL,
  PRIMARY KEY (empid));

问题 我想使用单个spring数据JPA Repo,它可以创建,获取,更新记录。

将所有表属性添加到抽象类实体

@Entity
@MappedSuperclass
@Data
public abstract class Employee{
private String empname;
private String departmentid;
private int age;
private int salary;
}

合同雇员的第一实体

@Entity
@Table(name="contractemployee")
public class Contractemployees extends Employee {
@Id
private int empid;

}

常驻员工的第二实体

@Entity
@Table(name="permanentemployee")
public class PermanentEmployee extends Employee {
@Id
private int empid;

}

回购

@NoRepositoryBean
public interface EmployeeRepo<T extends Employee> extends CrudRepository<T, Integer> {

    }

我应该如何从JPA知道要从中获取/更新表的控制器传递这些对象。

0 个答案:

没有答案