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