Version property of Parent isn't incrementing if I update child
I'm using JPA 2 with Hibernate 3.x. I have two Entity objects Foo and Bar and the relation is like this -
@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;
}
Now my problem is If I loaded Foo from entityManager.find(...) and updated name of Bar like foo.getBar().setName("someAnotherName"); and fire entityManager.merge(foo) then Hibernate fires a update on Bar and increments a version for Bar only. From the object perspective doesn't its a change of the sate of Foo as well and shouldn't it increment the version of Foo as well?
version property from Bar and version of Foo should get incremented if Bar get开发者_StackOverflow中文版s updated.
How can I achieve this?In your case not Foo, but entity on which it references has been changed, so there is no need in version increment.
@Version adds optimistic locking capability to an entity and it shouldn't be used as a change counter. The main purpose of this annotation is detecting of conflicting updates, so think twice before doing that.
The only way to override this behaviour is to use [OPTIMISTIC | PESSIMISTIC]_FORCE_INCREMENT
加载中,请稍侯......
精彩评论