论坛首页 Java版 Spring

spring 对oracle Clob处理的事务配置问题

浏览 711 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-11-15 关键字: spring 对oracle Clob处理的事务配置问题
引用
在项目中使用到oracle 的Clob 一顿狂配之后还是不好使,我对spring的学习刚刚起步,贴出我的配置文件,大家看看有什么地方不对,或者大家谁能提供点详细的资料。

<beans>


	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName">
			<value>oracle.jdbc.driver.OracleDriver</value>
		</property>
		<property name="url">
			<value>jdbc:oracle:thin:@192.168.0.166:1521:tt</value>
		</property>
		<property name="username">
			<value>ttt</value>
		</property>
		<property name="password">
			<value>ttt</value>
		</property>
	</bean>

	<bean id="nativeJdbcExtractor"
		class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
		lazy-init="true" />

	<bean id="oracleLobHandler"
		class="org.springframework.jdbc.support.lob.OracleLobHandler"
		lazy-init="true">
		<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
		<!--① 设置本地 Jdbc 对象抽取器  -->
	</bean>


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



	<!-- 定义事务拦截器bean -->
	<bean id="transactionInterceptor"
		class="org.springframework.transaction.interceptor.TransactionInterceptor">
		<property name="transactionManager" ref="transactionManager" />
		<property name="transactionAttributes">
			<props>
				<prop key="save*">PROPAGATION_REQUIRED</prop>
				<prop key="update*">PROPAGATION_REQUIRED</prop>
				<prop key="remove*">PROPAGATION_REQUIRED</prop>
				<prop key="del*">PROPAGATION_REQUIRED</prop>
				<prop key="new*">PROPAGATION_REQUIRED</prop>
			</props>
		</property>
	</bean>

	<!-- 定义BeanNameAutoProxyCreator-->
	<bean
		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
		<property name="beanNames">
			<value>NoticeService</value>
		</property>
		<!--  下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
		<property name="interceptorNames">
			<list>
				<!-- 可以增加其他的拦截器 -->
				<value>transactionInterceptor</value>
			</list>
		</property>
	</bean>


	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

		<!--spring 支持oracle大字段 设置 LOB 处理器
		-->
		<property name="lobHandler">
			<ref bean="oracleLobHandler" />
		</property>
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.Oracle9Dialect
				</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.query.factory_class">
					org.hibernate.hql.classic.ClassicQueryTranslatorFactory
				</prop>
			</props>
		</property>
   
最后更新时间:2007-11-15
引用
这是tomcat的错误提示

java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with specified [javax.transaction.TransactionManager] required
	org.springframework.jdbc.support.lob.LobCreatorUtils.registerTransactionSynchronization(LobCreatorUtils.java:79)
	org.springframework.orm.hibernate3.support.AbstractLobType.nullSafeSet(AbstractLobType.java:185)
	org.hibernate.type.CustomType.nullSafeSet(CustomType.java:146)
	org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1997)
	org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2243)
	org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2660)
	org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56)
	org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
	org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
	org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
	org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
	org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
	org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
	com.enation.framework.web.filter.OpenSessionInViewFilter.closeSession(OpenSessionInViewFilter.java:16)
	org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:183)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
	com.enation.framework.web.filter.InitContextFilter.doFilter(InitContextFilter.java:93)

   
0 请登录后投票
论坛首页 Java版 Spring

跳转论坛:
JavaEye推荐