贝娄是我的实体:
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 对象设置为“父”),如果我打电话给< strong> EntityA.getEntityBs()在新 EntityB 的父级上,将其添加到结果 Set 中。但如果我在我的例子中这样做它不起作用。
有人知道我错在哪里吗?
谢谢!
这是我的java代码,我如何坚持实体:
//...some code
EntityB eb = new EntityB();
eb.setEntityA(entityA);
entityManager.persist(entityB);
我想明确指出,我不会将 entityB 添加到 entityA 的entityB集合中。
答案 0 :(得分:4)
每两天就会提出一个问题。
JPA不会为您保持对象图的一致性。保持双向关联的双方都是 的责任。如果您提交事务,关闭会话并重新加载实体,那么一切都将如您所期望的那样,因为您已初始化关联的拥有方。但是如果你在内存中修改关联的一面,JPA就不会为你修改另一面。