【问题标题】:Entitymanager.flush clears fieldEntitymanager.flush 清除字段
【发布时间】:2014-05-29 10:33:01
【问题描述】:

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

我从域对象创建实体A 的新实例。同样从这个域对象中,我通过使用entityManager.getReference(<class>, <id>) 来获取BC。我打电话给entityManager.mergeentityManager.flush()。到目前为止一切都很好,BC 的值都存在于A 中。当我在刷新后执行entityManager.refresh(A) 时,B 被清除(null),但C 仍然存在。

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

我不知道在这里寻找什么。可能与我的实体的定义方式有关吗?持久性-xml?非常感谢任何提示!

编辑: B 的值只有在我不更改引用的情况下才会被清除。如果我将B 的引用更改为B',那么它会正确更新

【问题讨论】:

    标签: entity-framework jpa websphere entitymanager openjpa


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多