Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @仅使用@OneToMany删除_Java_Hibernate_Jpa - Fatal编程技术网

Java @仅使用@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

我对注释@OnDelete和@OneToMany关系有问题

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和孤儿移除选项,可用性将与您想要的相同