以下是我的实体:
public class EntityA {
//...
@OneToMany(mappedBy="entityA")
private Set entitieBs;
}
public class EntityB {
//...
@ManyToOne(cascade=CascadeType.PERSIST)
private EntityA entityA;
}
with accessors methods(getters and setters).
我打算每次在数据库中保存新的 EntityB 对象(将 EntityA 对象设置为“父级”)时,如果我调用 <在新的 EntityB 的父级上使用strong>EntityA.getEntityBs(),将其添加到结果集合中。但如果我按照我的例子这样做,它就不起作用。
有人知道我错在哪里吗?
谢谢!
<小时/>这是我如何持久化实体的java代码:
//...some code
EntityB eb = new EntityB();
eb.setEntityA(entityA);
entityManager.persist(entityB);
我想明确表示,我不会将 entityB 添加到 entityA 的实体B 集合中。
最佳答案
这个问题每两天就会有人问一次。
JPA 不会为您维护对象图的一致性。 您有责任维护双向关联的双方。如果您提交事务、关闭 session 并重新加载实体,一切都会如您所愿,因为您已经初始化了关联的拥有方。但是,如果您修改内存中关联的一侧,JPA 不会为您修改另一侧。
关于java - JPA+ Hibernate 中的级联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8835669/