我有一个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()之前,版本仍然是版本。为什么呢?
答案 0 :(得分:1)
也许你在规范边界“之外”:
实体可以访问其版本字段或属性的状态 导出应用程序使用的方法来访问该版本,但是 不得修改版本值。只有持久性提供程序 允许设置或更新版本属性的值 对象