【问题标题】:JAXB unmarshalling to managed JPA entitiesJAXB 解组到托管 JPA 实体
【发布时间】:2014-03-28 04:05:42
【问题描述】:

我有一个托管 JPA 实体(也有子实体)。应该通过解组从另一个数据源检索的 XML 文件来填充给定实体的某些字段。问题是 JAXB 不会将 XML 解组为现有对象,而是创建一个新对象。解决问题的最简单方法是什么?

【问题讨论】:

    标签: java jpa jaxb


    【解决方案1】:

    您应该使用 JPA merge 操作将分离实体的状态合并到持久性上下文中,而不是解组到现有的 JPA 对象。

    public void updateEmployee(Employee detachedEntity) {
       Employee managedEntity = entityManager.merge(detachedEntity);
       // do further operations on managedEntity and not detachedEntity
    }
    

    更新

    如果您使用的是 JPA 2.1,那么您可以在此用例中利用实体图。

    【讨论】:

    • 好的,让我们明确一点:我有一个包含字段 A 和 B 的类(假设是 ID)。在一个数据库中,唯一存储的字段是 A(和 ID)。在另一个数据库中,我有一个带有 ID 和 B 字段的 xml 文件。 xml 中不存在 A 字段。合并不会导致将 A 的值覆盖为 null 吗?
    • 澄清一下 - 我根本不想存储 B 字段,所以合并方法不是解决问题的正确方法
    猜你喜欢
    • 1970-01-01
    • 2011-07-31
    • 2023-03-14
    • 2013-02-20
    • 2011-11-18
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多