jpa Spring Boot :如何使用现有实体类创建类似的另一个实体

pkln4tw6  于 2022-11-14  发布在  Spring
关注(0)|答案(2)|浏览(333)

我正在开发一个简单的应用程序,其中我有一个实体类Employee。现在我想从现有的Employee创建/复制一个名为ActiveEmployees的新的类似实体。我想添加功能,如果我点击新的API端点-〉POST:http://locahost:8080/api/employee/active/john-〉因此,它应该将现有的员工John记录与所有表数据一起保存在新表active_employees中。

@Entity
@Table(name="employee")
public class Employee{

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;

  @Column
  @NotNull
  private String firstNname;

  @Column
  @NotNull
  private String lastNname;

  @Column
  @NotNull
  private String department;

    @JsonManagedReference
    @OneToOne(fetch = FetchType.LAZY,
            mappedBy = "employee",
            cascade = CascadeType.ALL,
            orphanRemoval = true)
    ActiveEmployee activeEmployee;
     

... Constructor, getters and setters
}

@Entity
@Table(name="active_employees")
public class ActiveEmployees {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;
  @JsonBackReference
  @OneToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
  @JoinColumn(name = "employee_id")
  private Employee employee;
}
laawzig2

laawzig21#

我认为您应该在Hibernate中使用继承Map,而不是使用两个具有相同字段表有多种策略,请检查并使用最适合您要求策略
在此处阅读教程https://www.javatpoint.com/hibernate-inheritance-mapping-tutorial

ozxc1zmp

ozxc1zmp2#

您可以使用继承与@Map的超类。但如果我将设计这个应用程序,我将添加布尔字段“活动”到雇员类。

相关问题