级联删除和显式删除之间的区别

Difference between cascade remove and explicit remove

假设我们有 2 个实体 classes EmployeeAddress 并且 Address class 在 Employee class:

@Entity
class Employee {
    :
  @OneToOne
  private Address address;
    :
}

如果我们使用显式 remove:

Employee employee = em.find(Employee.class, 1);

em.getTransaction().begin();
em.remove(employee);
em.getTransaction().commit();

我知道它会从 Employee table 中删除 employee 实例,但它是否也会从 Address [中删除引用的 address 实例table?或者我们应该在 address 实例上显式使用 remove 以将其从 Addresstable?

中删除

documentation of @OneToOne 开始,默认情况下没有级联操作。这意味着在您的情况下,当您删除员工时地址不会被删除。

另见CascadeType