我有一个表,它由同时运行的两个不同进程更新。我在我的实体上使用DynamicUpdate注释。我正面临以下问题,
请提出上述行为的可能原因。请注意,我正在使用JPA + hibernate和Spring事务。
任何快速指针都非常有用。
答案 0 :(得分:0)
可以通过在该实体上使用单独的@Version
属性来解决问题。因此,当进程1和进程2将在同一实体上工作时。如果任何人更新该行,版本将自动递增。当另一个进程倾向于更新同一行时,它会发现版本不匹配,并将抛出一个乐观异常,你可以简单地捕获异常并可能向用户显示一条包含特定错误的错误消息,例如{{1 }}。
所以,只需添加如下属性:
ooops sorry. someone has updated the row already