Hibernate+MSSQL 时间戳使用问题

原来在mysql下使用正常,换成mssql后总是在保存时报对象已经被另外一个事务修改。

上网查了一下,mssql中timestamp类型只能数据库服务器自己赋值。开始想只改数据库字段改为datetime类型,后来想<timestamp标签下没有配字段类型的,以后万一用配置文件生成数据库后又要改一遍。不如一步到位,改成long。

最后解决办法:

把时间戳的定义由

<timestampname="versionDate"column="version_column"></timestamp>

改为版本字段

<versionname="versionDate"column="version_column"type="long"/>

查了一下文档,发现version要比timestamp好,timestamp是简化版不太安全,受不同数据库的影响大,之前在mysql上就遇到日期精度的问题(只能到秒)。

相关推荐