示例用例:
class Address {
@XMLTransient
@ManyToOne(cascade={})
private Person person;
}
在我的用例中,Address 通过 JAXB 序列化为 XML,在另一个系统中修改,从 XML 反序列化为分离的 JPA 实体,然后合并回 db (em.merge(address))。由于 Person 属性被标记为@XMLTransient,它从 XML 中恢复为 null。
由于所有 Address' 都有一个数据库条目并且可以通过那里的 Id 识别我想合并以忽略 Person 属性并只保留关系的数据库值(这与级联无关)。
有没有办法告诉 JPA 在合并时忽略 Person 属性,或者我是否必须使用 @XMLAdapter 在合并之前使用相应的 Person 对象设置属性(顺便说一句,我还在所有实体上使用了 @Version 的乐观锁定)。
任何提示?
米格尔
最佳答案
听起来您根本不希望 JPA 在合并时更新此关系。那是对的吗?如果是这样,您是否尝试过设置 updatable=false
在 @ManyToOne
?
关于jpa - 如何在 JAXB 反序列化后在合并时忽略具有空值的 JPA ManyToOne 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14871886/