持久化后,版本未在bean中更新

时间:2012-03-20 12:08:00

标签: jpa

我有一个JPA实体Person,它有一个@Version长版本字段。我做了以下事情:

<<transaction - begin>>
person.getId() --> == NULL
person.setVersion(1);
em.persist(person);
person.getId() --> returns 1 (this one is generated inside the persist call)
person.getVersion(); --> returns 1
<<transaction - end>>

现在,如果我检查数据库,版本= 2,但bean错误地包含1。

我看到person实体的id在person实例中被正确反映。但是,在调用persist()之前,版本仍然是版本。为什么呢?

1 个答案:

答案 0 :(得分:1)

也许你在规范边界“之外”:

  

实体可以访问其版本字段或属性的状态   导出应用程序使用的方法来访问该版本,但是   不得修改版本值。只有持久性提供程序   允许设置或更新版本属性的值   对象

(引自JPA specification