Spring窗体和org.hibernate.StaleObjectStateException

Spring窗体和org.hibernate.StaleObjectStateException,hibernate,spring-mvc,Hibernate,Spring Mvc,我使用Spring表单将对象绑定到HTML表单。该对象已存在于我的数据库中,因此正在对其进行编辑 问题是,当我试图通过AJAX或返回服务器的整页请求更新对象时,我得到了org.hibernate.StaleObjectStateException 我已经在DAO上尝试了context.currentSession.saveOrUpdateinstance和context.currentSession.updateinstance,但都不起作用 似乎hibernate版本列导致了这个问题,因为当我

我使用Spring表单将对象绑定到HTML表单。该对象已存在于我的数据库中,因此正在对其进行编辑

问题是,当我试图通过AJAX或返回服务器的整页请求更新对象时,我得到了org.hibernate.StaleObjectStateException

我已经在DAO上尝试了context.currentSession.saveOrUpdateinstance和context.currentSession.updateinstance,但都不起作用

似乎hibernate版本列导致了这个问题,因为当我将版本列添加到spring绑定时

但是,我可以保存,如果我通过AJAX保存,然后通过完全保存重新加载再次保存,我会再次看到StaleObjectStateException,因为通过AJAX保存再次更改了版本,与现在表单中的版本不同

无论如何,我不想将version列绑定到表单,必须有一种更优雅的方法来实现这一点


我做错了什么?

你试过合并吗?合并将对象绑定回会话。我认为您需要在会话中更新实体。