为了账号安全,请及时绑定邮箱和手机立即绑定

您可以将 JPA 配置为在乐观并发中为 @Version 使用 UUID

您可以将 JPA 配置为在乐观并发中为 @Version 使用 UUID

阿晨1998 2022-05-20 18:29:23
有没有办法配置或覆盖 JPA @Version 注释以使用字符串(UUID)?根据示例,我有一个使用 int 的乐观并发工作的简单示例int version@VersionPublic Integer getVersion ()    return version;...我们需要考虑使用 GUID 进行版本控制(目前在 Postgres 数据库中作为一个变化 100 的字符保存)。老实说,我的示例在不久前就开始工作了,还没有深入研究。我的第一次尝试是在黑暗中充满希望的一枪 -String version@Version @GeneraedValue(generator="system-uuid")Public String getVersion ()    return version;...基本上我认为这是您将 UUID 用于主键的方式。我想如果这行得通,他们会记录下来的!我敢肯定我听说过这是可能的,尽管我最初的谷歌搜索没有提出任何建议,所以我想我会问是否有人以前做过这个,或者可以指出我粗略的方法(我'我假设它会比我的简单尝试更深一些)?
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

不,JPA 规范不允许这样做。基于时间或基于数字。而且你肯定永远不会有一个生成策略,因为那是针对 PK 的,因为版本是由 JPA 提供者直接分配的。

来自 javadoc@Version

版本属性支持以下类型:int、Integer、short、Short、long、Long、java.sql.Timestamp。


查看完整回答
反对 回复 2022-05-20
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号