Java 弹簧靴中的级联型
我是一个新的春天靴子。 我想知道在这种情况下我必须使用哪种级联类型 我有一个员工班和一个部门 许多员工可以在一个部门工作(因此我猜这是一种@manytone关系),一个部门可以有一个或多个员工(因此是一个**@OneToMany) 我想对Employee类执行一些编辑,这些编辑必须传播到其他依赖项。 但是如果我删除一名员工,我不能删除整个部门,所以我只能删除该员工Java 弹簧靴中的级联型,java,spring,spring-boot,Java,Spring,Spring Boot,我是一个新的春天靴子。 我想知道在这种情况下我必须使用哪种级联类型 我有一个员工班和一个部门 许多员工可以在一个部门工作(因此我猜这是一种@manytone关系),一个部门可以有一个或多个员工(因此是一个**@OneToMany) 我想对Employee类执行一些编辑,这些编辑必须传播到其他依赖项。 但是如果我删除一名员工,我不能删除整个部门,所以我只能删除该员工 @Entity public class Department { @Column(nullable = false) pr
@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
}
我必须用什么来代替
我尝试了CascadeType.ALL,但它也删除了整个部门。首先,如果您的员工只能是一个部门的一部分,我认为您不需要单独的联接表。 如果您的员工可以在多个部门工作,则是多对多关系 在考虑您的问题时,只需删除您的级联类型即可。在Employee类中不需要它 如果删除部门时需要删除部门下的所有员工,则只需在部门侧添加您的级联类型.all 这里有一个更好答案的前一个线程。
首先,如果您的员工只能是一个部门的一部分,我认为您不需要单独的联接表。 如果您的员工可以在多个部门工作,则是多对多关系 在考虑您的问题时,只需删除您的级联类型即可。在Employee类中不需要它 如果删除部门时需要删除部门下的所有员工,则只需在部门侧添加您的级联类型.all 这里有一个更好答案的前一个线程。
你可能是对的!顺便说一句,如果某个部门可能被删除,我还想简单地在Employee中的department字段中输入一个简单的空值。你可能是对的!顺便说一句,如果某个部门可能会被删除,我还想简单地在Employee中的department字段中输入一个简单的空值
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;
}