使用hibernate4的SessionFactory获取Session时有两种方式
1、sessionFactory.getCurrentSession()
2、sessionFactory.openSession(),开启新session,需要关闭
当使用1获取CurrentSession,不会开启新的session,速度要快。但是如果你是使用多线程的时候,就不能使用getCurrentSession,这样会报以下错误
org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread
只需要改成openSession方式就可以解决了