JPA规范(2.1)说:
版本属性支持以下类型:int,Integer,short,Short,long,Long,Timestamp
@Version属性溢出后的预期行为是什么?
我希望它能正常工作。溢出和 version++ != version 不会出现错误。如果您使用的是短交易并且在第一个交易完成之前有 65536 个交易对此实体进行了更新,则将导致覆盖更新的风险。
编辑:当您使用@Version时,更新查询将不会如下所示:
update person set surname = ? where id = ?
Run Code Online (Sandbox Code Playgroud)
但像这样:
update person set surname = ?, version_field = ? where id = ? and version_field = ?
Run Code Online (Sandbox Code Playgroud)
现在 JDBC 将在完成后返回更新计数。如果未进行更新,则 JPA 实现将假定未找到具有指定 id 和版本的数据 -> 异常。
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |