我正在尝试使用JPA将有向图保存到数据库中,我可以在第一次创建实体,甚至在它们之间建立关联,但是一旦我尝试删除其中一个,它就会失败。
这些类的定义如下:
public class Node {
@Id
Long id;
String name;
Double weight;
@OneToOne(fetch=FetchType.LAZY, optional = true)
Node nextNode;
}
我不需要/这是双向关系。我也尝试将nextNode属性设置为null,然后合并,然后删除但它似乎不起作用并始终给出相同的错误:无法更新或删除父
我做错了什么?
答案 0 :(得分:0)
您需要确保您正在删除的节点未被其他节点引用。即将nextNode设置为null不在正被删除的节点中,而是在节点引用它。
使用hibernate anotation的可能解决方案:
@OnDelete(action=OnDeleteAction.CASCADE)
生成外键为:" ON UPDATE NO ACTION ON DELETE CASCADE;"