提问人:Miguel ZP 提问时间:2/14/2013 最后编辑:kaya3Miguel ZP 更新时间:8/11/2021 访问量:731
JAXB反序列化后,如何在合并时忽略具有null值的JPA ManyToOne属性?
How to ignore a JPA ManyToOne property with null value on merge after JAXB deserialization?
问:
示例用例:
class Address {
@XMLTransient
@ManyToOne(cascade={})
private Person person;
}
在我的用例中,Address 通过 JAXB 序列化为 XML,在另一个系统中修改,从 XML 反序列化为分离的 JPA 实体,然后合并回 db (em.merge(address))。当 Person 属性被标记为@XMLTransient它从具有 null 的 XML 中恢复时。
由于所有 Address 都有一个数据库条目,并且可以通过 Id 来识别,因此我希望合并忽略 Person 属性,只保留关系的数据库值(这与级联无关)。
有没有办法告诉 JPA 在合并时忽略 Person 属性,或者我是否必须在合并之前使用@XMLAdapter将属性与相应的 Person 对象一起设置(顺便说一句,我也在所有实体上使用带有 @Version 的乐观锁定)。
有什么提示吗?
米格尔
答:
0赞
Jeff Evans
3/11/2013
#1
听起来您根本不希望在合并时由 JPA 更新此关系。这是对的吗?如果是这样,您是否尝试过在 ?updatable=false
@ManyToOne
评论