Entitymanager.flush清除字段

时间:2014-04-15 07:43:20

标签: entity-framework jpa websphere entitymanager openjpa

我在更新/合并具有对另一个实体A的引用的实体B时遇到问题。 A也引用了实体C

我从域对象创建实体A的新实例。此外,通过使用B,我使用ID来获取CentityManager.getReference(<class>, <id>)。我致电entityManager.mergeentityManager.flush()。到目前为止一切都很好,BC的值都存在于A中。当我在同花顺之后执行entityManager.refresh(A)时,B被清除(空),但C仍在那里。

我运行sql查询以验证更新前该值是否存在。在刷新之后,FK被清除B,因此当调用刷新时,它会发现它。

我不知道该在这里寻找什么。可能是我的实体是如何定义的?持久化XML?非常感谢任何提示!

编辑: 仅当我不更改引用时,才会清除B的值。如果我将B的引用更改为B',则会正确更新

1 个答案:

答案 0 :(得分:0)

问题没有显示我遇到问题的整个背景。引用A的实体B中也包含外键字段。此外键字段始终为null,因此设置实体引用无效。