Java @仅使用@OneToMany删除
我对注释@OnDelete和@OneToMany关系有问题Java @仅使用@OneToMany删除,java,hibernate,jpa,Java,Hibernate,Jpa,我对注释@OnDelete和@OneToMany关系有问题 public class Patent { @OneToMany @JoinCollumn(name = "parent_id") @OnDelete(action = OnDeleteAction.CASCADE) private List<Child> children; } public class Child { } 当我运行它时,我得到了这样一个错误:delete=casca
public class Patent {
@OneToMany
@JoinCollumn(name = "parent_id")
@OnDelete(action = OnDeleteAction.CASCADE)
private List<Child> children;
}
public class Child {
}
当我运行它时,我得到了这样一个错误:delete=cascade上只能使用一对多的反向关联。我需要如何更改代码才能使其正常工作,而不需要双向关系?我知道,通过向子类添加带有适当注释的@ManyToOne关系可以解决这个问题,但我不想使用这个解决方案
编辑:其目的是我需要在导出的ddl模式中生成关于删除级联到外键的约束。您所需要的只是为您的OneToMany关系使用OrphaneRemoving参数。请参阅以供参考 例如:
@OneToMany(mappedBy="customer", orphanRemoval="true")
public List<Order> getOrders() { ... }
然而,我认为您的映射是非常错误的,对于这种关系,您应该向您的子类添加专利字段,将关系标记为manyTone,然后使用JoinCollumn并将引用设置为parent_id。使用专利中的mappedBy和孤儿移除选项,可用性将与您想要的相同