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