1.在学hibernate的时候,我们知道当session.get或load出来的对象对其进行修改操作,是不需要手动操作session.update,数据就会同步到数据库,但是为何在ssh整合的时候,在action中get或load出来一个数据后对其内容进行操作,是不会自动同步到数据库?
原因:
要让hibernate自动更新数据的前提是:1.session没有关闭,即自动更新的对象是持久化对象 2.存在于事务情况下
在这里,第一个条件是满足的(由于在web.xml中配置了OpenSessionInViewFilter过滤器,所以当请求开始的时候session就打开了,当页面显示数据的时候session关闭[因为懒加载所以会后关闭])
但是第二个条件是没有满足的,因为spring将事务注册在了service层,而acrtion层是没有事务的,所以在action层get或load对象后对其进行数据的修改,hibernate是不会自动同步到数据库的。