小编Mig*_* ZP的帖子

JAXB反序列化后如何在合并时忽略具有空值的JPA ManyToOne属性?

示例用例:

class Address {

@XMLTransient
@ManyToOne(cascade={})
private Person person;

}
Run Code Online (Sandbox Code Playgroud)

在我的用例中,Address 通过 JAXB 序列化为 XML,在另一个系统中修改,从 XML 反序列化为分离的 JPA 实体,然后合并回 db (em.merge(address))。由于 Person 属性被标记为@XMLTransient,它从 XML 中恢复为 null。

由于所有 Address' 都有一个数据库条目并且可以通过那里的 Id 识别我想合并以忽略 Person 属性并只保留关系的数据库值(这与级联无关)。

有没有办法告诉 JPA 在合并时忽略 Person 属性,或者我是否必须使用 @XMLAdapter 在合并之前使用相应的 Person 对象设置属性(顺便说一句,我还在所有实体上使用了带有 @Version 的乐观锁定)。

任何提示?

米格尔

null merge jpa jaxb

5
推荐指数
1
解决办法
651
查看次数

标签 统计

jaxb ×1

jpa ×1

merge ×1

null ×1