Hibernate setParameter 報(bào)錯(cuò) Unknown parameter position: 0

項(xiàng)目中Hibernate的版本之前是3點(diǎn)幾的,后面由于spring升級(jí)到5不得不把hibernate也升級(jí)到了5(5.2.13.Final)集成之后發(fā)現(xiàn)一大堆Deprecated的提示,其中較多的地方就是Query問(wèn)題,舊版的用的是:

org.hibernate.Query

我看到這個(gè)對(duì)象已經(jīng)被Deprecated掉了,已經(jīng)被:

org.hibernate.query.Query

替換掉了,想到以后混用的話(huà)維護(hù)起來(lái)麻煩,一狠心把所有的org.hibernate.Query都替換掉了

然而問(wèn)題來(lái)了,以前遺留的代碼中用position設(shè)置參數(shù)的地方出了問(wèn)題:

query.setParameter(0, name);

我本以為是下標(biāo)不是從0開(kāi)始的,換成1也是有問(wèn)題。后來(lái)發(fā)現(xiàn)是這個(gè)方法只能對(duì)原生sql進(jìn)行綁定,不能對(duì)HQL參數(shù)進(jìn)行綁定,這就讓我忍不住吐槽了,升級(jí)了新版本居然不兼容舊版本,但是既然都換,了,也只能硬著頭皮把所有的地方都用名稱(chēng)綁定的方式替換掉了:

String sql = "select bean from TDtl bean where bean.billno=:billno";
Query query = getSession().createQuery(sql);
query.setParameter("billno", billno);

這種坑我真的不想多說(shuō)什么,hibernate5很多寫(xiě)法都換了,其中一個(gè)更坑的地方,把查詢(xún)結(jié)果轉(zhuǎn)換成其他對(duì)象的方法(項(xiàng)目中多處用到):

   /**
     * Set a strategy for handling the query results. This can be used to change
     * "shape" of the query result.
     *
     * @param transformer The transformer to apply
     *
     * @return this (for method chaining)
     *
     * @deprecated (since 5.2)
     * @todo develop a new approach to result transformers
     */
    @Deprecated
    Query<R> setResultTransformer(ResultTransformer transformer);

被Deprecated我就不說(shuō)什么了,我以為你有替代的方法,結(jié)果直接給我來(lái)了個(gè)todo,無(wú)語(yǔ)凝噎。所以這個(gè)方法還在用,只能等它什么時(shí)候有替換了再說(shuō)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,224評(píng)論 8 265
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,268評(píng)論 6 342
  • 你瞇著眼,搬著馬扎,坐到院子里 圈里幾只羊,在吃草 羊在吃草,你在看 餓了便啃口饃饃 你在吃饃,羊在吃草 你駝著背...
    王霄垚閱讀 490評(píng)論 6 4
  • 不管位于何處,心靜自然涼!
    東澤666閱讀 160評(píng)論 0 2

友情鏈接更多精彩內(nèi)容