【发布时间】:2014-03-28 04:05:42
【问题描述】:
我有一个托管 JPA 实体(也有子实体)。应该通过解组从另一个数据源检索的 XML 文件来填充给定实体的某些字段。问题是 JAXB 不会将 XML 解组为现有对象,而是创建一个新对象。解决问题的最简单方法是什么?
【问题讨论】:
我有一个托管 JPA 实体(也有子实体)。应该通过解组从另一个数据源检索的 XML 文件来填充给定实体的某些字段。问题是 JAXB 不会将 XML 解组为现有对象,而是创建一个新对象。解决问题的最简单方法是什么?
【问题讨论】:
您应该使用 JPA merge 操作将分离实体的状态合并到持久性上下文中,而不是解组到现有的 JPA 对象。
public void updateEmployee(Employee detachedEntity) {
Employee managedEntity = entityManager.merge(detachedEntity);
// do further operations on managedEntity and not detachedEntity
}
更新
如果您使用的是 JPA 2.1,那么您可以在此用例中利用实体图。
【讨论】: