我的spring+hibernate出问题Could not obtain transaction-synchronized Session for current thread。
原本是不出问题的,因为我的dao bean都是配置在applicationContext.xml。然后通过ref给dao注入sessionFactory。
这样就没问题。
后来我把applicationContext.xml中的dao配置去掉了,直接在dao中用注解@Repository。
这下就出问题了,我不明白为什么在applicationContext.xml写配置就没问题,用了注解就有问题了。
后来查到解决方法:
在web.xml中增加配置:
<filter> <filter-name>SpringOpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>SpringOpenSessionInViewFilter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
注意url-pattern不要配置为*。不要让所有访问都open session。
主要是让事务线程和视图线程进行绑定。