Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹簧靴中的级联型_Java_Spring_Spring Boot - Fatal编程技术网

Java 弹簧靴中的级联型

Java 弹簧靴中的级联型,java,spring,spring-boot,Java,Spring,Spring Boot,我是一个新的春天靴子。 我想知道在这种情况下我必须使用哪种级联类型 我有一个员工班和一个部门 许多员工可以在一个部门工作(因此我猜这是一种@manytone关系),一个部门可以有一个或多个员工(因此是一个**@OneToMany) 我想对Employee类执行一些编辑,这些编辑必须传播到其他依赖项。 但是如果我删除一名员工,我不能删除整个部门,所以我只能删除该员工 @Entity public class Department { @Column(nullable = false) pr

我是一个新的春天靴子。 我想知道在这种情况下我必须使用哪种级联类型

我有一个员工班和一个部门

许多员工可以在一个部门工作(因此我猜这是一种@manytone关系),一个部门可以有一个或多个员工(因此是一个**@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
}
我必须用什么来代替


我尝试了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;
}