Habitat Framework

          專注于Java EE企業(yè)級開發(fā)
          posts - 13, comments - 81, trackbacks - 0, articles - 5
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          Spring或Hibernate其實(shí)都提供了透明處理Clob的方法
          只是個(gè)人覺得用Spring的做法比hibernate更透明一點(diǎn)(hibernate2.16);
          具體做法為:
          1.在sessionFactory中加入lobHandler的注射:

          <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
          ??????? <property name="dataSource" ref="dataSource"/>
          ????????<property name="lobHandler" ref="lobHandler"/>
          ??????? <property name="mappingResources">
          ??????????????????<value>xxx.hbm.xml</value>
          ??????????????????.....
          ?????????</property>
          </bean>

          2.定義這個(gè)lobHandler,值得注意的是這里有Oracle的版本區(qū)別:

          <bean id="lobHandler" lazy-init="true"?? class="org.springframework.jdbc.support.lob.OracleLobHandler">
          ??????? <property name="nativeJdbcExtractor">
          ??????????? <ref bean="nativeJdbcExtractor"/>
          ??????? </property>
          </bean>

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

          因?yàn)镺racle9i處理Clob的方式和別的數(shù)據(jù)庫很不一樣,甚至與Oracle10g都不兼容,所以這里要用spring提供的SimpleNativeJdbcExtractor.如果使用Oracle10g的話,可以直接使用:

          <bean id="lobHandler" lazy-init="true"? class="org.springframework.jdbc.support.lob.DefaultLobHandler"/>

          對應(yīng)的應(yīng)該使用Oracle10g對應(yīng)的JDBC驅(qū)動(dòng).

          4.在領(lǐng)域?qū)ο蟮膆bm中對應(yīng)的Clob字段應(yīng)該使用這樣的定義:

          <property name="context" column="context" type="org.springframework.orm.hibernate.support.ClobStringType" length="1048576000"/>

          這里的length是字節(jié)了,不是長度哦,最大可以設(shè)到2G.對應(yīng)的,該字段在領(lǐng)域?qū)ο笾兄苯由昝鞒蒘tring就可以了.當(dāng)對這個(gè)字段寫入長數(shù)據(jù)時(shí)直接調(diào)用其set方法就可以了,Spring會(huì)自己幫你做余下的處理,讓你透明的處理Clob字段.

          5.業(yè)務(wù)邏輯層對該字段的操作必須需要在有事務(wù)管理的方法中使用,否則會(huì)報(bào):
          java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with 'jtaTransactionManager' on LocalSessionFactoryBean required 這個(gè)錯(cuò)誤


          評論

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2007-07-24 16:03 by mao_lu
          如何修改clob字段呀
          我的插入沒問題
          修改報(bào)java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with 'jtaTransactionManager' on LocalSessionFactoryBean required 這個(gè)錯(cuò)誤

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2007-07-24 17:46 by Kerwin Weng
          理論上出現(xiàn)這種問題主要是因?yàn)閔ibernate的Session已經(jīng)關(guān)閉,造成你的修改操作是在沒有事務(wù)的環(huán)境下提交的,所以就會(huì)報(bào)這種錯(cuò),如果你的插入和修改代碼幾乎完全一樣,可能就要詳細(xì)檢查你的配置和所選用的驅(qū)動(dòng)了,如果方便留下你的MSN,我加你

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2007-08-14 08:48 by mao_lu
          很感謝你的回復(fù),我的問題還是沒有解決,我的QQ:358131961
          向你請教

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2007-08-15 19:45 by 李瑞宏
          你好,我也報(bào)上面的錯(cuò)誤,能加我嗎? qq:278241728
          msn:lrh165@hotmail.com

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2007-09-17 15:34 by yys
          me too!

          msn:chris-in@hotmail.com
          QQ:282842044

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2007-09-29 18:26 by 能加我嗎?我也是這個(gè)問題
          能加我嗎?我也是這個(gè)問題~
          QQ:39800425

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2007-10-19 16:37 by
          我也碰到這個(gè)問題,搞了半天解決不了,盼幫忙
          QQ:52332092

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2007-12-11 21:28 by 圣殿
          你好,我也遇到這個(gè)問題,在上傳的時(shí)候遇到
          Active Spring transaction synchronization or active JTA transaction with 'jtaTransactionManager' on LocalSessionFactoryBean required
          這樣的錯(cuò)誤,你上面的所說的解決辦法是:.業(yè)務(wù)邏輯層對該字段的操作必須需要在有事務(wù)管理的方法中使用,我不理解,請多關(guān)照哈小弟哦,小弟是初學(xué)
          我的QQ是:345910534

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2008-01-08 11:17 by Strive
          兄弟我的問題是: 連接 數(shù)據(jù)庫都不能連上報(bào) NLS 參數(shù)無效. 真是頭疼. 有解不? QQ:132175958 email:infosys@163.com

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2008-01-08 15:12 by Kerwin
          抱歉,我也沒有遇到過

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2008-01-23 10:58 by yangyi336
          我是有Spring+hibernate+Oracle環(huán)境下的Blob字段處理方式
          但老是報(bào)錯(cuò)
          能否指點(diǎn)它們在哪里不同嗎
          能否把您的項(xiàng)目發(fā)給我一份嗎
          謝謝
          yangyi336@163.com

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2008-01-23 11:03 by Kerwin.Weng
          具體錯(cuò)誤具體分析,我以前的代碼是別人的產(chǎn)品不可以發(fā)

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2008-03-21 10:48 by sunxinghua
          我的插入操作沒問題,修改操作報(bào)了您文中提到的那個(gè)EXCEPTION~
          我的插入和修改的方法都配置了事務(wù),而且代碼基本一樣,主要是插入操作最后調(diào)用的是this.getHibernateTemplete.save(),修改方法改的是....update()方法~`
          請指教:
          MSN:xinghuasun666@163.com

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2008-03-21 11:31 by Kerwin.Weng
          getHibernateTemplete.save()的session可能和當(dāng)前session不同的,尤其在OpenSessionInView的情況下

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2008-12-24 23:14 by yin_bp
          http://blog.csdn.net/yin_bp/archive/2008/12/24/3599469.aspx

          bboss persistent 1.0.2中方便地實(shí)現(xiàn)大字段(clob,blob)的處理

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)]  回復(fù)  更多評論   

          2010-09-03 22:38 by emlynswannd@yahoo.com
          HEY CRAZY ROBOT !!

          remeber me ? im Emyln :D

          # re: Spring+hibernate+Oracle環(huán)境下的Clob字段處理方式[完全原創(chuàng)][未登錄]  回復(fù)  更多評論   

          2010-10-09 16:46 by ln
          太感謝啦,找了好多方法都沒有解決問題,終于從你這找到答案啦
          主站蜘蛛池模板: 德兴市| 确山县| 仲巴县| 禄劝| 漠河县| 麻江县| 鹤岗市| 遂溪县| 开阳县| 奉节县| 鹤山市| 孝感市| 洞头县| 渝中区| 宜昌市| 邳州市| 托克逊县| 合江县| 布尔津县| 龙里县| 原平市| 平舆县| 万山特区| 沂水县| 崇阳县| 综艺| 泗水县| 新田县| 镇巴县| 玉门市| 二手房| 新晃| 囊谦县| 边坝县| 平武县| 全南县| 青田县| 昔阳县| 伊宁县| 信阳市| 青浦区|