我有一个 Person 对象。Person 有一个同样是 Person 类型的 manager 属性。
@OneToOne(optional = true, cascade = { CascadeType.ALL })
private Person manager;
假设 John 是经理,Bob 是员工。当我试图删除 John 时,由于 Bob 成为孤儿(没有经理),它失败了。在我的用例中应该允许这样做。但是将这种关系标记为“可选”并没有帮助。而Cascade在这里似乎没有任何意义。
我认为这可以通过 JPA 实现。有什么帮助吗?
@Entity
public class Person {
@Id
private String id;
private String name;
private Integer age;
private Address address;
@JoinColumn(name = "manager_id", nullable = true, insertable = true, updatable = true)
@OneToOne(optional = true, cascade = { CascadeType.ALL })
private Person manager;
@OneToMany(mappedBy = "manager", cascade = { CascadeType.ALL })
public Collection<Person> reportees;