java - JPA+ Hibernate 中的级联

标签 java hibernate jpa cascade

以下是我的实体:



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/

相关文章:

Java使用正则表达式提取文件名

java - 如何在另一个类中调用ActionListener中的Java类

java - selenium 等待代理页面加载超时

hibernate - 合并 Hibernate 对象和 JAXB 对象

java - Spring - 缺少必需的库 - hibernate3-3.2.3.GA.jar

java - JBAS014613 : Operation ("deploy") failed - address: ([ ("deployment" => "test.war")])

java - JBoss 在连接超时时重新连接

java - 使用编辑距离比较相似的字符串遇到了问题

java - JPA更新表结构-数据发生了什么

jpa - 字符串 id 生成器