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

时间:2016-12-28 14:07:00

标签: jpa entitymanager

假设我们在Employee类中引用了2个实体类AddressAddressEmployee类:

@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表中删除Employee实例,但它是否也会从address表中删除引用的Address实例?或者我们是否应该在remove个实例上明确使用address将其从Address表中删除?

1 个答案:

答案 0 :(得分:1)

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

另见CascadeType