我是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.