原因
必须要将使用
sessionFactory.getCurrentSession()
获取session的代码所在的方法加入到事务管理器中;否则获取不到session了
sessionFactory.getCurrentSession()是要基于事务的,才能实现session生命周期的管理
解决
添加事务注解
再使用了获取当前session的方法上添加
@Transactional(readOnly=true) 或 只写@Transactional
或者直接在整个service类上加入
需要在spring配置文件中开启 注解模式
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>