我有父实体和子实体,
我给了级联类型.PERSIT子实体。
当我坚持让父母带孩子时,效果很好。
但当我添加child时,hibernate开始插入行。
@Entity
class Parent{
@Id
private Long id;
@OneToMany(mappedBy = "parent", cascade = CascadeType.PERSIST)
private List<Child> children = new ArrayList<>();
}
@Entity
class Child{
@Id
private Long id;
@ManyToOne..
}
public void testCascade(){
Parent parent = new Parent();
Child child1 = new Child();
Child child2 = new Child();
parent.addChild(child1);
parent.addChild(child2);
em.persist(parent);
// works well until here
Child child3 = new Child();
parent.addChild(child3);
}
child3
到
parent
没有
em.persist
,是的
insert
他们为什么这么做?
我就知道
CascadeType.PERSIST
em.persist(parent);
==
em.persist(parent);
em.persist(child1);
em.persist(child2);
也
CascadeType.MERGE
em.merge(parent);
==
em.merge(parent);
em.merge(child1);
em.merge(child2);
我没想到会有变化。
如果我给你
它工作得和我预期的一样好。
你能解释一下这种情况吗?