hibernate3+spring+clob报Active Spring transaction synchronization错误

问题描述

Exceptioninthread"main"java.lang.IllegalStateException:ActiveSpringtransactionsynchronizationoractiveJTAtransactionwithspecified[javax.transaction.TransactionManager]requiredatorg.springframework.jdbc.support.lob.LobCreatorUtils.registerTransactionSynchronization(LobCreatorUtils.java:79)atorg.springframework.orm.hibernate3.support.AbstractLobType.nullSafeSet(AbstractLobType.java:185)atorg.hibernate.type.CustomType.nullSafeSet(CustomType.java:146)atorg.hibernate.type.ComponentType.nullSafeSet(ComponentType.java:336)atorg.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2166)atorg.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2412)atorg.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2850)atorg.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)atorg.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)atorg.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)atorg.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)atorg.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)atorg.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)atorg.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)atorg.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)atorg.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:407)atorg.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)atorg.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683)atxiangya.dao.impl.PatientInfoDaoImpl.save(PatientInfoDaoImpl.java:36)atxiangya.dao.impl.test.Test.main(Test.java:143)<?xmlversion="1.0"encoding="UTF-8"?>applicationContext.xml文件<!--指定Spring配置文件的Schema信息--><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:p="http://www.springframework.org/schema/p"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsd"><!--<beanid="lobHandler"lazy-init="true"class="org.springframework.jdbc.support.lob.DefaultLobHandler"/>--><beanid="lobHandler"class="org.springframework.jdbc.support.lob.DefaultLobHandler"lazy-init="true"/><beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><propertyname="lobHandler"ref="lobHandler"/><propertyname="configLocation"value="classpath:hibernate.cfg.xml"></property></bean><!--tansaction--><beanid="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><propertyname="sessionFactory"ref="sessionFactory"/></bean><tx:adviceid="txAdvice"transaction-manager="transactionManager"><!--用于配置详细的事务语义--><tx:attributes><tx:methodname="save*"propagation="REQUIRED"/><!--其他方法使用默认的事务设置--><tx:methodname="*"/></tx:attributes></tx:advice><!--AOP配置的元素--><aop:configproxy-target-class="true"><!--配置一个切入点,匹配xiangya.dao.impl包下所有以Impl结尾的类里、所有方法的执行--><aop:pointcutid="myPointcut"expression="execution(*xiangya.dao.impl.*Impl.*(..))"/><!--指定在txAdvice切入点应用txAdvice事务增强处理--><aop:advisoradvice-ref="txAdvice"pointcut-ref="myPointcut"/></aop:config><!--DAO--><beanid="daoTemplate"abstract="true"><propertyname="sessionFactory"ref="sessionFactory"></property></bean><beanid="patientInfoDao"class="xiangya.dao.impl.PatientInfoDaoImpl"parent="daoTemplate"></bean><!--Service--><beanid="patientInfoService"class="xiangya.service.impl.PatientInfoServiceImpl"><propertyname="patientInfoDao"ref="patientInfoDao"></property></bean></beans>dao文件packagexiangya.dao;importjava.util.List;importxiangya.domain.PatientInfo;publicinterfacePatientInfoDao{voidsave(PatientInfopatientInfo);voidupdate(PatientInfopatientInfo);voiddelete(PatientInfopatientInfo);List<PatientInfo>findByPatientId(StringpatientId);List<PatientInfo>findAllPatient();}daoImpl文件packagexiangya.dao.impl;importjava.util.List;importorg.springframework.jdbc.support.lob.LobHandler;importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;importxiangya.dao.PatientInfoDao;importxiangya.domain.PatientInfo;publicclassPatientInfoDaoImplextendsHibernateDaoSupportimplementsPatientInfoDao{privateLobHandlerlobHandler;publicLobHandlergetLobHandler(){returnlobHandler;}publicvoidsetLobHandler(LobHandlerlobHandler){this.lobHandler=lobHandler;}publicPatientInfoDaoImpl(){//TODOAuto-generatedconstructorstub}@Overridepublicvoidsave(PatientInfopatientInfo){//TODOAuto-generatedmethodstubSystem.out.println("开始保存");getHibernateTemplate().save(patientInfo);System.out.println("结束保存");}@Overridepublicvoiddelete(PatientInfopatientInfo){//TODOAuto-generatedmethodstubSystem.out.println("进入dao层,删除");getHibernateTemplate().delete(patientInfo);}@Overridepublicvoidupdate(PatientInfopatientInfo){//TODOAuto-generatedmethodstubSystem.out.println("进入dao层,更新");getHibernateTemplate().update(patientInfo);}@SuppressWarnings("unchecked")@OverridepublicList<PatientInfo>findByPatientId(StringpatientId){//TODOAuto-generatedmethodstubSystem.out.println("进入dao层,根据病人id查找病人信息");return(List<PatientInfo>)getHibernateTemplate().find("fromPatientInfopwherep.patientId=?",patientId);}@SuppressWarnings("unchecked")@OverridepublicList<PatientInfo>findAllPatient(){//TODOAuto-generatedmethodstubSystem.out.println("进入dao层,查找所有病人信息");return(List<PatientInfo>)getHibernateTemplate().find("fromPatientInfo");}}

解决方案

解决方案二:
不要使用hibernate的事物管理,要使用spring的事物管理<beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><propertyname="dataSource"ref="dataSource"></property></bean>

解决方案三:
引用1楼u011564172的回复:

不要使用hibernate的事物管理,要使用spring的事物管理<beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><propertyname="dataSource"ref="dataSource"></property></bean>

引用1楼u011564172的回复:

不要使用hibernate的事物管理,要使用spring的事物管理<beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><propertyname="dataSource"ref="dataSource"></property></bean>

我看到其他地方都写的要Hibernate管理事务试了下这个还是不行啊。。唉搞了好几天了

时间: 2025-01-26 10:22:15

hibernate3+spring+clob报Active Spring transaction synchronization错误的相关文章

spring batch 报错,求大神赐教,急急急急。。。。。。

问题描述 spring batch 报错,求大神赐教,急急急急...... 2014-2-22 13:13:42 org.springframework.context.support.AbstractApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@13d93f4: display name [org.spring

spring jar包冲突-为什么我在spring中只要添加一段配置就会报jar包冲突的错误?

问题描述 为什么我在spring中只要添加一段配置就会报jar包冲突的错误? 在application.xml中只要添加<!-- class=""org.springframework.jms.listener.DefaultMessageListenerContainer""> --> <!-- 事物管理 --> <!-- --> <!-- --> 这段配置就会报 java.lang.NoSuchMethodE

spring mvc 报错,求解答,各位好心人必有好报。

问题描述 spring mvc 报错,求解答,各位好心人必有好报. 六月 07, 2015 6:55:04 下午 org.apache.catalina.core.StandardContext listenerStart 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.sp

eclipse配置src下的spring的配置文件会报找不到的错误.?用myeclipse能找到.

问题描述 eclipse配置src下的spring的配置文件会报找不到的错误.?用myeclipse能找到. spring的配置文件放在src目录下死活找不到.contextConfigLocationWEB-INF/classe/applicationContext.xml和contextConfigLocationclasspath:applicationContext.xml都试过了,还是不行,是eclipse的BUG吗? WEB-INF/classes/applicationContex

图片-加入biz层后,配置spring一直报错,求大神解决

问题描述 加入biz层后,配置spring一直报错,求大神解决

tomcat6 spring 启动报错

问题描述 tomcat6 spring 启动报错 java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Mon Jun 09 13:43:08 CST 2014]; root of context

javaweb-求大神,Hibernate与Spring整合报如下错误

问题描述 求大神,Hibernate与Spring整合报如下错误 2015-1-8 15:45:14 org.springframework.context.support.AbstractApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@10849bc: display name [org.springframew

spring security报错,实在是找不出原因

问题描述 spring security报错,实在是找不出原因 说明一下,给别人的项目部署的时候报错的,项目代码没问题,配置也不会错,找了很久的原因不知道错在哪. #这是spring security的配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:security

spring-【新手学习Spring】报错了,根本看不懂。

问题描述 [新手学习Spring]报错了,根本看不懂. 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'us