5

示例用例:

class Address {

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

}

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

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

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

有什么提示吗?

米格尔

4

1 回答 1

0

听起来您根本不希望 JPA 在合并时更新此关系。那是对的吗?如果是这样,您是否尝试过updatable=false设置@ManyToOne

于 2013-03-11T15:21:26.823 回答