假设我有2个Java对象:Parent和Child。 它们之间的关系是 Child - > Parent = many-to-one ,即许多Child对象可以与同一Parent关联。
一个Child对象持有对其Parent的引用,而Parent对象没有字段来处理其子对象。
在Hibernate中导致在Child映射中有一个多对一元素;父映射不包含一对多条目,因为父对象不需要集合字段来引用其所有子对象。
现在,当删除Parent时,Oracle抛出一个异常,即当有子实体引用该实体时,无法删除该实体。
使用这个对象模型,当后者被删除时,有没有办法以casacadely方式删除属于Parent对象的所有Child对象?
答案 0 :(得分:1)
1>制作双向映射到Child< - >家长。提到级联删除。
2 - ;你知道谁是这个父级的子对象,首先删除这个父级的所有子级,然后尝试删除父级。
编辑:
查看此示例链接
答案 1 :(得分:1)
班级家长
import java.util.Set;
import javax.persistence.*;
@Entity
@Table(name = "Parent")
public class Parent{
@Id
@GeneratedValue
private Integer id;
private String name;
@OneToMany(mappedBy="Child", cascade=CascadeType.ALL)
private Set<Child> child;
}
考虑名为child的第二类
import javax.persistence。*;
@Entity
@Table(name = "Child")
public class Child{
@Id
@GeneratedValue
private Integer id;
private String lastname;
@ManyToOne
@JoinColumn(name = "id")
private Parent parent;
}
只需在POJO中进行更改,就不会抛出异常