在我们的旧数据库结构中,我们在一个表中有两个字段,在我们更改数据时会更新。
create table dbo.example(
name varchar(50),
...,
changed smalldatetime, -- here we save the last update date
version int -- and here we increase the number
)
不要问。它就像是: - )
现在我使用Eclipselink和Glassfish v3实现乐观锁定。
我设法使用@Version
注释来增加版本。
但是,只有在名称字段确实发生变化时,我才能更新已更改的字段。
只需每次都设置更改的字段,每次都会使JPA更新行。即使名称字段没有真正的变化。而且我不想检查名称字段是否真的被“手”改变了。
我是否也可以将@Version
注释设置为第二个字段?
答案 0 :(得分:0)
我找到了它:
@PreUpdate
private void update() {
changed = new Date();
}
只有在EntityManager决定进行更新时才会调用它。