我正在开发一个简单的应用程序,其中我有一个实体类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;
}
2条答案
按热度按时间laawzig21#
我认为您应该在Hibernate中使用继承Map,而不是使用两个具有相同字段表有多种策略,请检查并使用最适合您要求策略
在此处阅读教程https://www.javatpoint.com/hibernate-inheritance-mapping-tutorial
ozxc1zmp2#
您可以使用继承与@Map的超类。但如果我将设计这个应用程序,我将添加布尔字段“活动”到雇员类。