今天有一个映射问题引出了我对hibernate如何管理session的疑问!!一对多的映射关系,如果关闭session,多的一方就可以成功的查询出一的一方,但是如果我手动关闭session就会出现:org.hibernate.LazyInitializationException: could not initialize proxy - no Session这样的问题!!这个问题产生的原因是由于session的不正当关闭造成的,引发了我对hibernate session管理的疑问,在网上找了一篇管理hibernate session的文章!!和大家分享!!
下面是Hibernate官方提供的一个ThreadLocal工具:
针对WEB程序,还可以利用Servlet2.3的Filter机制,轻松实现线程生命周期内的Session管理。下面是一个通过Filter进行Session管理的典型案例: