update发生异常Could not synchronize database state with session。我的主键是手动生成的,一开始调试,jsp页面的表单元素的值都被正常的封装到了Action所对应的Form的属性中,仔细一看,原来是自己粗心大意引起的。虽然在表单中hidden id了,且id的value不为空,但是提交到Action中时,news.getId()为一个新值,而不是jsp页面的hidden id的值了,究其原因,调用news.getId()时,我进行了处理,如果id属性为空,就根据当前时间重新生成一个新值,否则就返回原来的值。当我提交到Action时,news.getId()返回了一个新值,这就说明hidden id没有正确封装,将hidden 的name 改为news.id,重写启动Tomcat,update测试通过。
说了这么多,Could not synchronize database state with session这个异常引发的原因就很明显了,当企图更新一个不存在的id实体时,便发生了这样的异常。