org.hibernate.HibernateException: No Session found for current thread

<!-- 定义Service组件,并将DAO组件注入Service组件 -->
<bean id="taxQueryService" class="gov.tax.query.service.impl.TaxQueryServiceImpl"
p:taxQueryDao-ref="taxQueryDao"/>
<bean id="taxQueryMultiService" class="gov.tax.query.service.impl.TaxQueryMultiServiceImpl"
p:taxQueryDao-ref="taxQueryDao"/>
<!-- 定义DAO组件,并将SessionFactory注入DAO组件 -->
<bean id="taxQueryDao" class="gov.tax.query.dao.impl.TaxQueryHibernateImpl"
p:sessionFactory-ref="sessionFactory"/>

<!-- 配置Hibernate的局部事务管理器,使用HibernateTransactionManager类 -->
<!-- 该类是PlatformTransactionManager接口针对采用Hibernate的特定实现类 -->
<!-- 配置HibernateTransactionManager需依赖注入SessionFactory -->
<bean id="transactionManager" 
class="org.springframework.orm.hibernate4.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory"/>


<!----start---bean(taxQueryService)---配置事务增强处理Bean,指定事务管理器-->
<tx:advice id="txAdvice" 
transaction-manager="transactionManager">
<!-- 用于配置详细的事务定义 -->
<tx:attributes>
<!-- 所有以'get'开头的方法是read-only的 -->
<tx:method name="get*" read-only="true"/>
<!-- 其他方法使用默认的事务设置,指定超时时长为5秒 -->
<tx:method name="*" isolation="DEFAULT"
propagation="REQUIRED" timeout="5"/>
</tx:attributes>
</tx:advice>
<!-- AOP配置的元素 -->
<aop:config>
<!-- 配置一个切入点 -->
<aop:pointcut id="myPointcut" expression="bean(taxQueryService)"/>
<!-- 指定在myPointcut切入点应用txAdvice事务增强处理 -->
<aop:advisor advice-ref="txAdvice" 
pointcut-ref="myPointcut"/>
</aop:config>
<!----end---bean(taxQueryService)---配置事务增强处理Bean,指定事务管理器-->

<!----start---bean(taxQueryMultiService)---配置事务增强处理Bean,指定事务管理器-->
<tx:advice id="txAdvice" 
transaction-manager="transactionManager">
<!-- 用于配置详细的事务定义 -->
<tx:attributes>
<!-- 所有以'get'开头的方法是read-only的 -->
<tx:method name="get*" read-only="true"/>
<!-- 其他方法使用默认的事务设置,指定超时时长为5秒 -->
<tx:method name="*" isolation="DEFAULT"
propagation="REQUIRED" timeout="5"/>
</tx:attributes>
</tx:advice>
<!-- AOP配置的元素 -->
<aop:config>
<!-- 配置一个切入点 -->
<aop:pointcut id="myPointcut" expression="bean(taxQueryMultiService)"/>
<!-- 指定在myPointcut切入点应用txAdvice事务增强处理 -->
<aop:advisor advice-ref="txAdvice" 
pointcut-ref="myPointcut"/>
</aop:config>
<!----end---bean(taxQueryMultiService)---配置事务增强处理Bean,指定事务管理器-->


<!----start-- method---配置事务增强处理,指定事务管理器-->
<!-- <tx:advice id="txAdvice" 
transaction-manager="transactionManager">
用于配置详细的事务定义
<tx:attributes>
所有以'get'开头的方法是read-only的
<tx:method name="get*" read-only="true"/>
其他方法使用默认的事务设置,指定超时时长为5秒
<tx:method name="*" isolation="DEFAULT"
propagation="REQUIRED" timeout="5"/>
</tx:attributes>
</tx:advice>
AOP配置的元素
<aop:config>
配置一个切入点
<aop:pointcut id="myPointcut" expression="execution(* gov.tax.query.dao.impl.*Impl.*(..))"/>
指定在myPointcut切入点应用txAdvice事务增强处理
<aop:advisor advice-ref="txAdvice" 
pointcut-ref="myPointcut"/>
</aop:config> -->
<!----end---method---配置事务增强处理,指定事务管理器-->

猜你喜欢

转载自blog.csdn.net/earthchinagl/article/details/80326612