使用事务的时候,session对象应该是同一个,这样开启的事务才算有效
javaweb三层架构中一般是在service层开启事务,在dao层中使用,但是这个时候要保证他们使用的session对象是同一个对象
hibernate配置本地线程对象(ThreadLocal)
在hibernate核心配置文件中配置
<property name="current_session_context_class">thread</property>
配置之后在sessionFactory中使用getCurrentSession()方法获取session对象(相当于连接池的链接对象)
注意
使用了这种方式获取session后可以不再每次都手动关闭session,事务提交后会自动的关闭session对象