我使用Spring Forms将对象绑定到HTML表单。该对象已存在于我的数据库中,因此现在正在编辑它。
问题在于,当我尝试通过AJAX或整页请求将对象更新回服务器时,我得到org.hibernate.StaleObjectStateException
。
我在DAO上尝试了context.currentSession().saveOrUpdate(instance)
和context.currentSession().update(instance)
,但都没有工作。
似乎hibernate version
列导致了这个问题,因为当我将版本列添加到spring绑定时。
<sf:hidden id="myobject-id" path="myobject.version"/>
但是,我可以保存,如果我通过AJAX保存然后再通过完全保存重新加载保存,我再次看到StaleObjectStateException,因为版本已经通过AJAX保存再次更改(与现在表单中的版本不同)
我不想将版本列绑定到表单上,必须有一种更优雅的方式来执行此操作。
我做错了什么?