posts - 29, comments - 0, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          關于hibernate的大數據量的處理

          Posted on 2007-05-28 15:37 change 閱讀(216) 評論(0)  編輯  收藏

          以前用得的是hibernate3.0.5的版本~~~~而且關于queryfactory 的配置如下:

          <prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>

          因為數據量超出了10萬條~~~~結果出現了 heap 溢出問題,想想了,也確實該溢出了,呵呵~~~

          這種查詢方式,是將所有的查詢出來的結果以對象的形式進行緩存,如此巨大的數據,不把她給稱爆炸才怪呢:)

          查查hibernate 的文檔,有關于大數據量的處理~~~,流程大抵如下:

          Transaction tx = session.beginTransaction();

                  String hqlDelete = "delete VbufferGis ";
                  int deletedEntities = session.createQuery( hqlDelete ).executeUpdate();
                  tx.commit();
                  session.close();

          測試運行出現如下異常:query must begin with SELECT or FROM ,文檔是清清楚楚是這樣寫的嘛,怎么會出現這樣的問題呢,是不是和我剛開始的時候一樣覺得挺納悶的,呵呵~~~原來是配置的問題,將上面的配置改為:

          <prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop>

          本以為這下是萬事大吉了,呵呵~~~~問題有出來了,define class not foundexception :antlr.antlrexception

          在網上授了一把,原來hibernate用她來解析 hql ,而我用myEclipse的時候,有沒有導入那個包,自然有問題了,

          于是將那個包導入,測試刪除運行,一切ok!這下是真的萬事大吉了嗎?還沒有,這也難怪我的多磨難了,呵呵

          原來在進行待漢字的參數查詢的時候出現了亂碼現象,感覺挺奇怪的,百思不得其解,幸好有網絡這個好東西,google了一下,^_^ 原來值需要換一個版本就ok了,呵呵~~~于是在取sourceforge上面取下了 hibernate-3.1rc2.zip,這下子就ok了!一切運行正常!!!雖然問題是解決了,原理缺不甚明白,有待學習。。。。

          主站蜘蛛池模板: 宜城市| 武穴市| 井研县| 谷城县| 上饶县| 洛川县| 濉溪县| 大埔县| 时尚| 洱源县| 临沧市| 灯塔市| 兰溪市| 平阴县| 奉贤区| 河北区| 宝兴县| 新蔡县| 东阿县| 海淀区| 博湖县| 册亨县| 宜兴市| 澄江县| 东山县| 台南县| 开阳县| 伊金霍洛旗| 交口县| 攀枝花市| 安庆市| 湄潭县| 临城县| 信阳市| 丰都县| 六枝特区| 司法| 文化| 晋州市| 辛集市| 社会|