目前,我正在升级java/jsf/primefaces应用程序,我面临的问题是:
我将版本控制日期从日期数据类型更改为LocalDateTime,因为在本地计算机上第二次保存实体时,我有一个OptimistickLockException。(Windows64 + Wildfly23 + OpenJDK 12 + oracle-ojdbc6 6驱动程序)我已经调试过,显示了屏幕上jpaVersion的当前值,在更新之前一切都很好。
在开发服务器(Linux + Wildfly23 + OpenJDK 12 + oracle-ojdbc6 6驱动程序)上,它工作正常。两者共享相同的DB。
有人知道原因是什么?会很感激你的帮助。
诚挚的问候
发布于 2022-10-03 13:26:54
我想出来了:这与应用程序运行的时钟的精度有关。
在Windows上,我在Linux部署中的精度为纳秒(9),它的精度为毫秒(6),因此为了在多平台(Windows/Linux)上使用LocalDateTime,必须将时间截断/转换为毫秒,以避免锁定。或者简单地继续使用日期进行版本控制,总精度为(6/毫秒)。
https://stackoverflow.com/questions/73868000
复制相似问题