Mybatis 一级缓存 保存date之后 再次获取date,相隔一秒

Mybatis 一级缓存 保存date之后 在未提交事务之前再次获取date,数据不对等

问题:在springboot项目中,service方法添加了事务管理,先insert一条记录,在事务还未提交前,通过id查询这条记录,查询出来的结果的创建时间跟保存进去的创建时间总是相隔1s(偶尔)。

原因:mybatis 一级缓存,将数据保存的时候,会将时间 date ->2019/05/14 17:58:25 725 后面的毫秒数四舍五入,(坑爹啊),在事务还未提交之前,查询出来记录就被四舍五入了,结果 2019/05/14 17:58:26 ,但是保存进数据库的时间还是 2019/05/14 17:58:25 725 ,这样就会造成某些场景下,共用的date原本是同一个时间的,结果却是相差了1s。
解决:将 date时间 insert之前就 舍掉后面的毫秒数,就不会有这个问题了,至于更深层次的原因暂时未深究。有知道原理的道友可以留言告知一声哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值