3

我是 JPA 的新手,注意到可以通过使用@Version. 我只是好奇持久性提供程序是否会创建一个隐式版本字段,如果以前不存在的话。例如objectdb的网站指出:

“使用 ObjectDB 时,默认启用乐观锁定并且是全自动的。”

但这似乎是特定于供应商的行为,因为例如在 EclipseLink 中默认情况下不会启用乐观锁定。因此,如果我想使用锁定(是的,我想要:-)),我是否需要为我的所有实体创建一个额外的属性?规范中有任何提示吗?

先感谢您!

4

1 回答 1

3

是的,JPA@Version注释允许你定义一个版本属性,我假设 ObjectDB 默认只创建一个这个属性。

您自己的属性可以是 Integer、Long 或 Short(或它们的原始等价物)或 java.sql.Timestamp。

我知道的大多数 JPA 提供程序仅在您明确使用@Version注释时才进行乐观锁定。

于 2012-12-04T05:34:19.927 回答