我有一个指向子类的父类:
public class Parent {
@OneToOne
private Child child;
}
public class Child {
}
有没有办法在不出现约束异常的情况下删除子项?
Caused by: com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails
P.S:我不完全确定我是否正确建模了。父级可以指向一个子级,但子级的实例可以由多个父级指向。我想做的是删除一个 child 并删除所有 parent 之间的引用。希望您能理解。
最佳答案
来自this我认为你需要做两件事:
修复关系
public class Parent {
@ManyToOne(optional=true)
private Child child;
}
public class Child {
@OneToMany
private Set<Parent> parents;
}
实现删除方法:
void removeChild(Child toRemove) {
for (Parent p : toRemove.getParents()) {
p.setChild(null);
em.merge(p);
}
em.delete(toRemove);
}
关于java - @OneToOne 删除一个 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24945415/