使用LocalDateTime进行版本控制导致OptimistickLockException



当前正在升级我们的java/jsf/primefaces应用程序,我面临以下问题:

我将版本控制日期从date数据类型更改为LocalDateTime,从那以后,我在本地机器上第二次保存实体时出现了OptimistickLockException。(Windows64+Wildfly23+OpenJDK12+oracle-ojdbc6驱动程序(我已经调试过了,在屏幕上显示了jpaVersion的当前值,在更新之前一切都很好。

在开发服务器(Linux+Wildfly23+OpenJDK12+oracle-ojdbc6驱动程序(上,它运行良好。两者共享相同的数据库。

有人知道原因是什么?非常感谢你的帮助。

向致以最良好的问候

我发现了:这与应用程序运行时的时钟精度有关。

在Windows上,Linux部署的精度为纳秒(9(,毫秒(6(,因此为了在多平台(Windows/Linux(上使用LocalDateTime,必须将时间截断/转换为毫秒,以避免锁定。或者简单地继续使用Date进行版本控制,其精度始终为(6/毫秒(。

相关内容

  • 没有找到相关文章

最新更新