贝娄是我的实体:
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的父对象上调用EntityA.getEntityBs(),都将其添加到数据库中。结果集。但是,如果按照我的示例那样进行操作,它将无法正常工作。
有人知道我错了吗?
谢谢!
这是我如何保存实体的Java代码:
//...some code
EntityB eb = new EntityB();
eb.setEntityA(entityA);
entityManager.persist(entityB);
我想说明的是,我没有将entityB添加到entityA的entityB集合中。
最佳答案
每两天问一次这个问题。
JPA不会为您保持对象图的一致性。维护双向关联的双方是您的责任。如果您已提交事务,关闭会话并重新加载实体,一切都会如您所愿,因为您已经初始化了关联的拥有方。但是,如果您在内存中修改关联的一侧,则JPA不会为您修改另一侧。
关于java - 在JPA Hibernate中进行级联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8835669/