【发布时间】:2015-05-14 06:59:36
【问题描述】:
将 Hibernate 从 PostgreSQL 迁移到 MySQL(截至本问题版本 5.6.23)数据库开始在我们所有的数据库事务中抛出 OptimisticLockingException's,在 PostgreSQL 中正常运行的所有内容都停止了工作。我发现了导致这种情况发生的问题,并正在记录以供将来参考。
【问题讨论】:
标签: java mysql hibernate postgresql
将 Hibernate 从 PostgreSQL 迁移到 MySQL(截至本问题版本 5.6.23)数据库开始在我们所有的数据库事务中抛出 OptimisticLockingException's,在 PostgreSQL 中正常运行的所有内容都停止了工作。我发现了导致这种情况发生的问题,并正在记录以供将来参考。
【问题讨论】:
标签: java mysql hibernate postgresql
Hibernate 通过 Version 函数提供乐观锁定。这可以是数字字段或timestamp。我使用@Version 注释在我的实体上提供乐观锁定和dateModication,经过一些digging 我发现MySQL stores date/time without millisecond precision。因此,一旦 MySQL 在时间戳列上遇到@Version,它就会在更新时崩溃,我非常失望的是,即使经过多次请求和错误报告,MySQL 仍然没有选择支持这样一个基本的东西。
【讨论】: