今天在整合ssh时,tomcat启动时无异常,但是访问action是出现异常
HTTP Status 500 - getFlushMode is not valid without active transaction; nested exception is org.hibernate.HibernateException: getFlushMode is not valid without active transaction
检查配置都没有发现问题,百度发现是hibernate.cfg.xml文件多了<property name="hibernate.current_session_context_class">thread</property>配置,把这行配置注释或者把thread值改成org.springframework.orm.hibernate5.SpringSessionContext可以解决问题。
错误原因:
整合时spring中事务是在配置文件中配置自动开启,因为由getCurrentSession得到的session中是当前线程的session,但是当前线程中没有开启事务的代码,所以不能获transaction 。然而spring+hibernate整合必须要有活动的事务才能执行dao中的方法。
转自:http://m.blog.youkuaiyun.com/maoyuanming0806/article/details/61417995