一.openSession
在配置文件配置sessionFactory-hibernateProperties添加
<prop key="hibernate.current_session_context_class">thread</prop>
二 .getCurrentSession
第一步:
去掉配置:?
<prop key="hibernate.current_session_context_class">thread</prop>
第二步:配置需要管理的bean,交由transactionManager管理事务
<tx:advice transaction-manager="transactionManager" id="txAdvice"> <tx:attributes> <tx:method name="get*" read-only="true"/> <tx:method name="find*" read-only="true"/> <tx:method name="count*" read-only="true"/> <tx:method name="*" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut expression="execution(* xx.xx.service.*.*(..))" id="txPointCut"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/> </aop:config>
第三步:
在调用方法上加@Transactional注解