时间戳 java 数据库_java – 从Hibernate保存到数据库的对象获取错误的时间戳

我是Hibernate的新手,并且正在开发一个使用它的Web项目.

我有一个名为area的对象,它有一个date对象(java.sql.Timestamp)属性modifiedDate.当我创建一个新对象时,modifieDate为null,然后将其发送到getHibernateTemplate().saveOrUpdate(area);在我自己的类中,扩展了org.springframework.orm.hibernate3.support.HibernateDaoSupport,它使用当前时间戳设置并保存在数据库中.在数据库中,它将保存为日期时间.

我的问题是大多数情况下,使用与数据库中保存的日期相比1毫秒的日期更新对象时,这会导致此异常

如果尝试更新任何内容而不重新加载页面:

an org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)

从后续数据库获取对象时,正确的日期没有问题,只有在创建时它才会获得错误的值.

有没有办法在SaveOrUpdate中获取正确的modifiedDate?

如果需要映射使用< timestamp name =“modifiedDate”column =“ModifiedDate”/>并且所有测试都在localhost上运行,一切都在同一台机器上运行.

我已经有一个解决方法,通过调用getHibernateTemplate().refresh(area);在saveOrUpdate之后,我得到了正确的时间戳,但我仍然想知道是否有办法在saveOrUpdate中获取正确的modifiedDate.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值