62,628
社区成员
发帖
与我相关
我的任务
分享
。最后打断点发现new Date()生成的时间和数据库存储的不一样,假如代码里是2017-12-12 12:30:00,那么数据库里的就是2017-12-12 12:30:01。我是直接调用的Jpa提供的SaveAndFlush()方法直接把带有Date类型的bean存进去的,虽然最后换了种方法成功解决了问题,但是想问问有没有人知道出现这种情况的原因。我是在一个事务里,还加了锁的情况下执行的。
这个和Hibernate4框架没有关系,Date类型是long型数字,精度是到毫秒的,日志打印显示的是到秒的,时间在mysql存储的时候也是存数字,只不过分为date,datetime等类型,对精度的支持是不一样的,例如datetime没有设置三位小数精度,那么就会进行四舍五入,保留到秒,所以insert后和日志打印时间不同,需要注意的是mysql中建表时间字段需要设置精度,这样就存储和显示一致. 也可以参考如下博文: https://www.cnblogs.com/zaierzai/p/11989008.html
