西瓜皮儿的皮儿 2011-04-22
原来在mysql下使用正常,换成mssql后总是在保存时报对象已经被另外一个事务修改。
上网查了一下,mssql中timestamp类型只能数据库服务器自己赋值。开始想只改数据库字段改为datetime类型,后来想<timestamp标签下没有配字段类型的,以后万一用配置文件生成数据库后又要改一遍。不如一步到位,改成long。
最后解决办法:
把时间戳的定义由
<timestampname="versionDate"column="version_column"></timestamp>
改为版本字段
<versionname="versionDate"column="version_column"type="long"/>
查了一下文档,发现version要比timestamp好,timestamp是简化版不太安全,受不同数据库的影响大,之前在mysql上就遇到日期精度的问题(只能到秒)。