【发布时间】:2021-06-15 23:56:36
【问题描述】:
我是 Spring Boot 的新手。 我想知道在这种情况下我必须使用哪种级联类型。
我有一个Employee类和一个Department。
许多员工可以在一个部门工作(所以我猜这是一个@ManyToOne 关系),一个部门可以有一个或多个员工(所以它是一个**@OneToMany)。
我想对 Employee 类执行一些编辑,这些编辑必须传播到另一个依赖项。 但是如果我删除一个员工,我就不能删除整个部门,所以我只能删除那个员工。
@Entity
public class Department
{
@Column(nullable = false)
private String name;
@Id
private String code;
@Column(nullable = false)
private String address;
@Column(unique = true, nullable = false)
private String website;
@Column(unique = true, nullable = false)
private String cellNumber;
@JsonIgnore
@OneToMany(mappedBy = "department")
private Set<Employee> emplpoyee;
//constructors, getters and setters
}
这是 Employee 类
public class Employee
{
@Id
private String SSN;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String lastname;
@Column(nullable = false)
private String username;
@Column(nullable = false)
private String gender;
@Column(unique = true, nullable = false)
private String email;
@Column(nullable = false)
private String password;
@Column(nullable = false)
private String role;
@ManyToOne(cascade = CascadeType.???, fetch = FetchType.LAZY)
@JoinTable(
name = "employee_works_in_dept",
joinColumns = {@JoinColumn(name = "employee_SSN")},
inverseJoinColumns = {@JoinColumn(name = "dept_code")}
)
private Department department;
}
我必须用什么来代替??
我尝试使用 CascadeType.ALL,但它也删除了整个部门
【问题讨论】:
标签: java spring spring-boot