乐观锁定:需要更新的两个字段

时间:2012-11-06 15:25:21

标签: java jpa glassfish-3 optimistic-locking

在我们的旧数据库结构中,我们在一个表中有两个字段,在我们更改数据时会更新。

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注释设置为第二个字段?

1 个答案:

答案 0 :(得分:0)

我找到了它:

@PreUpdate
private void update() {
    changed = new Date();
}

只有在EntityManager决定进行更新时才会调用它。