0

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

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

4

1 回答 1

0

我找到了:

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

它仅在 EntityManager 决定进行更新时调用。

于 2012-11-06T16:01:15.917 回答