難能之理宜停,難處之人宜厚,難處之事宜緩,難成之功宜智。

          “道”就是指要自己才能走遍天下,“德”指兩個(gè)人要直心相對(duì).
          posts - 13, comments - 1, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          之前都是用Hibernate2.1的,原來(lái)也沒(méi)想著升級(jí),那天突然發(fā)現(xiàn)項(xiàng)目里要做批量刪除的功能,心想不如升級(jí)Hibernate3體驗(yàn)一下罷!
          誰(shuí)知把lib一改,全亂了!首先是hibernate包的路徑改了,要把所有的“net.sf.hibernate”替換為“org.hibernate”。
          然后就是處理下面幾個(gè)廢棄的方法:find()、iterate()、filter()、delete(String hqlSelectQuery)和saveOrUpdateCopy()。Hibernate3一律采用createQuery()方法來(lái)執(zhí)行所有的查詢(xún)語(yǔ)句,采用DELETE 查詢(xún)語(yǔ)句來(lái)執(zhí)行批量刪除,采用merge()方法來(lái)替代 saveOrUpdateCopy()方法。——又是一次全文搜索和替換!
          這樣,IDE基本沒(méi)有報(bào)錯(cuò)信息了!但一旦運(yùn)行就會(huì)報(bào)Connection timed out,后來(lái)發(fā)現(xiàn)hibernate的config文件和map文件都必須把dtd改為3.0。否則xerces會(huì)到hibernate.org上找3.0dtd,如果你沒(méi)有聯(lián)網(wǎng),則會(huì)報(bào)出java.net.ConnectException。
          另外,還要記得添加antlr-2.7.5H3.jar,要不會(huì)報(bào)java.lang.NoClassDefFoundError: antlr/ANTLRException。
          花了大半天時(shí)間,系統(tǒng)基本正常了!粗略檢查了一下,瀏覽和修改功能都正常,但有一個(gè)問(wèn)題,竟然無(wú)法插入新記錄啊!
          出現(xiàn)的異常為:
          org.hibernate.exception.ConstraintViolationException: could not insert
          后來(lái)在所有元素中設(shè)置: default-lazy="false"就可以了。
          值得一提的是,如果只想對(duì)已有的程序進(jìn)行簡(jiǎn)單的升級(jí),并且希望仍然調(diào)用Hibernate2.1中Session的一些接口,可以采用以下方式創(chuàng)建Session實(shí)例:
          org.hibernate.classic.Session session=sessionFactory.openSession();
          這樣的改動(dòng)會(huì)小很多~~~當(dāng)然如果希望在程序中完全使用Hibernate3.0,就只能采用以下方式創(chuàng)建Session實(shí)例:org.hibernate.Session session=sessionFactory.openSession();


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 庐江县| 卓资县| 博白县| 长沙县| 苍溪县| 武川县| 南郑县| 汉源县| 兴隆县| 宝山区| 拉萨市| 松原市| 原阳县| 万源市| 浦县| 马边| 阿鲁科尔沁旗| 巫溪县| 沙湾县| 越西县| 攀枝花市| 峨眉山市| 东源县| 封丘县| 喀什市| 静海县| 台山市| 呼玛县| 丽江市| 明水县| 舟曲县| 上栗县| 阿坝| 永泰县| 遂宁市| 广宗县| 涟水县| 南漳县| 八宿县| 迁安市| 武强县|