OpenSessionInView里的Session不能自动关闭?

09-10-20 geasslei

在Struts2+spring+hibernate集成的项目里,用到了spring的OpenSessionInViewFilter过滤器,来延长 Session的生命周期,但在使用过程中,lasy加载正常是可以用的,就是session不会自动关闭。我查看源码里有下面一段

Java代码

1. public static void closeSession(Session session) {

2. if (session != null) {

3. logger.debug("Closing Hibernate Session");

4. try {

5. session.close();

6. }

7. catch (HibernateException ex) {

8. logger.debug("Could not close Hibernate Session", ex);

9. }

10. catch (Throwable ex) {

11. logger.debug("Unexpected exception on closing Hibernate Session", ex);

12. }

13. }

14. }

上面的logger根本就没有输入,也就是说没有进入这个地方

Java代码

1. logger.debug("Closing single Hibernate Session in OpenSessionInViewFilter");

2. closeSession(sessionHolder.getSession(), sessionFactory);

只运行了上面那个logger

不清楚是为什么,向高手请教~~~