【学习笔记】not session found for current session原因分析

在SSH中,有时候会遇到not session found for current session的问题,刚刚我也遇到一个,现在总结一下:

错误原因:【下面代码有对应序号解析】

1.有没有开启事务管理器,并且把Hibernate的事务提交给Spring管理

2.transactionManager扫描方法名是否正确或者是所扫描的包名下的方法定义是否正确【重点,多错在这里】

3.Spring事务的切入点是否正确

下面是正确的Spring声明式事物配置:

【下面是本人实际开发时候使用的,转载请尊重劳动成果,谢谢:http://blog.csdn.net/nthack5730

<!--1. 配置hibernate的事务管理器 -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>

	<!-- 2.配置事务属性 除了下面定义的方法,其他的方法都不走事务    假如出现not session found for current session这个
		错误的话   可以看看是不是调用的方法没有在下面这个开启事务
	 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="get*" read-only="true"/>
			<tx:method name="find*" read-only="true"/>
			<tx:method name="save*" propagation="REQUIRED" />
			<tx:method name="do*" propagation="REQUIRED" />
	 		<tx:method name="update*" propagation="REQUIRED" />
	 		<tx:method name="delete*" propagation="REQUIRED" />
	 		<tx:method name="select*" propagation="REQUIRED" />
			<tx:method name="*" propagation="SUPPORTS" read-only="true"/>
		</tx:attributes>
	</tx:advice>

	<!-- 3.配置事务切入点,所有Service包括子包都切入,再把事务属性和事务切入点管理起来 -->
	<aop:config>
		<aop:pointcut expression="execution(* com.eqmt.service.*.*(..))" id="txtPointcut"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="txtPointcut"/>
	</aop:config>

如果有任何意见或者更高明的方式,老猫愿闻其详!谢谢!

【下面是本人实际开发时候使用的,转载请尊重劳动成果,谢谢:http://blog.csdn.net/nthack5730

时间: 2024-08-30 01:34:22

【学习笔记】not session found for current session原因分析的相关文章

VSTO学习笔记(七)基于WPF的Excel分析、转换小程序

原文:VSTO学习笔记(七)基于WPF的Excel分析.转换小程序 近期因为工作的需要,要批量处理Excel文件,于是写了一个小程序,来提升工作效率. 小程序的功能是对Excel进行一些分析.验证,然后进行转换. 概述 小程序主界面如下: 首先选择一个日期和类别,从命名上对待分析的Excel文件进行过滤.点击[浏览]选择待分析的Excel文件所在的目录, 程序中会获取所有子目录.然后点击[执行分析]就会按照左边CheckBox中的选择进行分析,分析结果显示在每一行中间.[修改配置]可以对分析规则

SSH2 No Session found for current thread原因

Hibernate4 与 spring3 集成之后, 如果在取得session 的地方使用了getCurrentSession, 可能会报一个错:"No Session found for current thread", 这个错误的原因,网上有很多解决办法, 但具体原因的分析,却没有多少, 这里转载一个原理分析: SessionFactory的getCurrentSession并不能保证在没有当前Session的情况下会自动创建一个新的,这取决于CurrentSessionConte

Hibernate4 No Session found for current thread原因

Hibernate4 与 spring3 集成之后, 如果在取得session 的地方使用了getCurrentSession, 可能会报一个错:“No Session found for current thread”, 这个错误的原因,网上有很多解决办法, 但具体原因的分析,却没有多少, 这里转载一个原理分析: SessionFactory的getCurrentSession并不能保证 在没有当前Session的情况下会自动创建一个新的,这取决于CurrentSessionContext的实

《Mycat学习笔记》 第四篇. MyCat 日志简单分析

环境说明 Windows 7  Mycat 1.5 Mysql 5.5 一个实例两个库 traveldata_db_1 和 traveldata_db_2 mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mycat_sync_test || mysql || performance_schema || traveldata_db_1 || t

Android 学习笔记之WebService实现远程调用+内部原理分析...

PS:终于可以抽出时间写写博客了,忙着学校的三周破实训外加替考...三周了,没怎么学习...哎... 学习内容: 1.WebService 实现远程方法的调用   什么是WebService...   WebService顾名思义,就是Web服务,WebService的数据传输格式是基于XML文档规范的,数据信息的传输就是以XML的形式来完成...由于XML不受平台和语言的限制,也正是由于这样的原因使得WebService可以实现远程调用,调用服务的语言可以是任意的.   什么是SOAP协议..

Apache Shiro学习笔记(四)身份验证源码分析

鲁春利的工作笔记,好记性不如烂笔头 本文出自 "闷葫芦的世界" 博客,请务必保留此出处http://luchunli.blog.51cto.com/2368057/1828405

Java集合类学习笔记(各种Map实现类的性能分析)

HashMap和Hashtable的实现机制几乎一样,但由于Hashtable是一个古老的.线程安全的集合,因此HashMap通常比Hashtable要快. TreeMap比HashMap和Hashtable要慢(尤其在插入.删除key-value对时更慢),TreeMap中的key-value总是处于有序状态,无需专门进行排序操作. LinkedHashMap比HashMap慢一点,因为它需要维护链表来保持Map中key-value时的添加顺序. IdentityHashMap采用与HashM

HCNP学习笔记之OSPF协议原理及配置5-LSA分析

前面,已经介绍了邻接关系的建立和LSDB的同步.通过同步过程的介绍,我们可以了解LSDB的同步是通过交互LSA实现的. 不同角色的路由器发出的LSA的内容是不同的,本文将介绍LSA报文的结构和种类,进而可以帮助我们分析路由的计算和生成过程. 1 LSA报头(很重要) LSA报头中的内容构成了LSDB的主要内容. 除Hello报文外,其它的OSPF报文都携带LSA信息. LS age: 此字段表示LSA已经生存的时间,越小越新,单位是秒.3600秒老化,1800秒刷新. LS type: 此字段标

Android(java)学习笔记141:SQLiteDatabase的query方法参数分析

public Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) 其中各种参数意思如下(如果其中某个参数不设置,可以指定为null): distinct:distinct true if you want each r