java.lang.IllegalStateException: Active Spring transaction synchronization or ac

在上一篇文章中,提到spring+hibernate处理oracle的blob字段,又要没有进行事务管理,导致报错如下:java.lang.IllegalStateException:ActiveSpringtransactionsynchronizationoractiveJTAtransactionwithspecified[javax.transaction.TransactionManager]required。解决办法:1、在spring配置文件中添加事务管理<!--spring对hibernate事物的支持--><beanid="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><propertyname="sessionFactory"ref="sessionFactory"></property></bean><beanid="txProxyTemplate"abstract="true"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"><propertyname="transactionManager"ref="transactionManager"></property><propertyname="transactionAttributes"><props><propkey="save*">PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-Exception</prop><propkey="add*">PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-Exception</prop><propkey="*">PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-Exception</prop></props></property></bean>2、在具体应用过程中,需要让你的mgr类受托管与hibernate事务,比如在我的项目中,我的application配置文件中,做如下设置:<beanid="blogArticleMgr"parent="txProxyTemplate"><propertyname="target"><beanclass="com.tyut.blog.mgr.impl.BlogArticleImplMgr"><propertyname="blogArticleDao"ref="blogArticleDao"></property></bean></property></bean><beanid="blogArticleDao"class="com.tyut.blog.dao.hibernate.BlogArticleDaoHibernate"><propertyname="sessionFactory"ref="sessionFactory"></property></bean>通过上面的配置,就可以解决标题的错误了。。。

相关推荐