是否可以配置或覆盖JPA @Version注释以使用字符串(UUID)?
根据示例,我有一个使用int进行乐观并发的简单示例
int version
@Version
Public Integer getVersion ()
return version;
...
我们需要考虑使用GUID进行版本控制(目前在Postgres db中以100字符变化)。
老实说,不久前我的示例就已经开始工作了,还没有花太多时间。我的第一次尝试是在黑暗中拍摄出一些希望-
String version
@Version @GeneraedValue(generator="system-uuid")
Public String getVersion ()
return version;
...
基本上,我认为这是将UUID用于主键的方式。我想这是否行得通,他们会对此进行记录!
虽然我最初的谷歌搜索什么都没想,但我敢肯定我已经听说过,所以我想我想问问是否有人曾经这样做过,或者可以指出我的粗略做法(我认为这比我的简单尝试要深一些)?
答案 0 :(得分:0)
不,JPA规范不允许这样做。基于时间或基于数字。而且您肯定永远不会有一个生成策略,因为它是针对PK的,并且版本是由JPA提供程序直接分配的。
来自@Version
的Javadoc
版本属性支持以下类型:int, 整数,短整数,短整数,长整数,长整数,java.sql.Timestamp。