我在更新/合并具有对另一个实体A
的引用的实体B
时遇到问题。 A
也引用了实体C
。
我从域对象创建实体A
的新实例。此外,通过使用B
,我使用ID来获取C
和entityManager.getReference(<class>, <id>)
。我致电entityManager.merge
和entityManager.flush()
。到目前为止一切都很好,B
和C
的值都存在于A
中。当我在同花顺之后执行entityManager.refresh(A)
时,B
被清除(空),但C
仍在那里。
我运行sql查询以验证更新前该值是否存在。在刷新之后,FK被清除B
,因此当调用刷新时,它会发现它。
我不知道该在这里寻找什么。可能是我的实体是如何定义的?持久化XML?非常感谢任何提示!
编辑:
仅当我不更改引用时,才会清除B
的值。如果我将B
的引用更改为B'
,则会正确更新
答案 0 :(得分:0)
问题没有显示我遇到问题的整个背景。引用A
的实体B
中也包含外键字段。此外键字段始终为null,因此设置实体引用无效。