首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

spring+hibernate处置oracle中的blob字段的报错

2012-09-11 
spring+hibernate处理oracle中的blob字段的报错做毕设用到oracle的bolb字段,网上查了查都说这样就可以了,

spring+hibernate处理oracle中的blob字段的报错

做毕设用到oracle的bolb字段,网上查了查都说这样就可以了,在我实际使用过程中会发现会报错。

配置情况:

?1、在spring配置文件中添加如下配置:<!-- 用于处理大文本字段 -->

?? ?<bean id="nativeJdbcExtractor" />

?? ?<bean id="oracleLobHandler" lazy-init="true">

?? ? ?<property name="nativeJdbcExtractor"><ref bean="nativeJdbcExtractor" /></property>

?? ?</bean>

2、将oracleLobHfandler注入到sessionfactory中

???<bean id="sessionFactory"

ref="dataSource"></property>

<property name="lobHandler">

?? ? ? ? ? ?<ref bean="oracleLobHandler" />

?? ? ? ?</property>?

?? </bean>

3、在hibernate映射文件中配置如下:

<property name="articlecontent" type="org.springframework.orm.hibernate3.support.BlobByteArrayType"

?? ? ? ? ? ?column="article_content"

?? ? ? ? ? ?not-null="true"

?? ? ? ? ? ?unique="false">

?</property>

4、在model中定义字段如下:

?? ? private byte[] articlecontent;

如果你按照如上配置,会报错如下:

??java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with specified [javax.transaction.TransactionManager] required

at org.springframework.jdbc.support.lob.LobCreatorUtils.registerTransactionSynchronization(LobCreatorUtils.java:79)

at org.springframework.orm.hibernate3.support.AbstractLobType.nullSafeSet(AbstractLobType.java:185)

at org.hibernate.type.CustomType.nullSafeSet(CustomType.java:145)

at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1826)

at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1803)

at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2059)

at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2427)

at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)

at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)

at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)

at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)

at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)

at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)

at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)

at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)

at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:374)

at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:639)

at com.tyut.blog.dao.hibernate.BlogArticleDaoHibernate.saveArticle(BlogArticleDaoHibernate.java:12)

at com.tyut.blog.mgr.impl.BlogArticleImplMgr.saveArticle(BlogArticleImplMgr.java:22)

at com.tyut.blog.webapp.action.ArticleAction.save(ArticleAction.java:52)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)

at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)

at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)

at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)

at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)

at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)

at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)

at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)

at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:743)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

at java.lang.Thread.run(Thread.java:595)

?

?

热点排行