我将 JPA 2 与 Hibernate 3.x 一起使用。我有两个实体对象 Foo 和 Bar,关系是这样的 -
@Entity
public class Foo{
@Id
private long id;
@OneToOne(cascade = CascadeType.ALL )
@JoinColumn(name = "bar")
private Bar bar;
@Version
private int version;
}
@Entity
public class Bar{
@Id
private long id;
private String name;
@Version
private int version;
}
现在我的问题是,如果我Foo
从like加载entityManager.find(...)
和更新并触发,name
那么Hibernate 会触发更新并仅增加一个版本。从对象的角度来看,它不会改变 Foo 的状态,也不应该增加 Foo 的版本吗?
现在我想删除属性,如果更新,应该增加。我怎样才能做到这一点?Bar
foo.getBar().setName("someAnotherName");
entityManager.merge(foo)
Bar
Bar
version
Bar
version
Foo
Bar