Space is not allowed after parameter prefix ':'


問題:在hibernate中執行mysql語句,如果mysql語句中含有@a := 1 之類的變量,回報這個錯誤

語句類似於“set @rownum=0, @preval=null; select @rnk:=IF((@rownum := @rownum + 1) and (@preval <=> sal), @rnk, @rownum) AS rnk, @preval:=sal sal FROM emp order by sal;”在mysql(5.X版本)中的sql編輯器中可以運行通過,但是在java程序中卻拋出異常:org.hibernate.QueryException: Space is not allowed after parameter prefix ':' ....

在網上 查找了資料,卻發現這是hibernate3.X包之下的一個bug,

(參照http://bugs.mysql.com/bug.php?id=41741)在hibernate4.X中已經修復。

但是項目中不可能使用hibernate4.0,最后不能不使用原生jdbc進行解決...

 

引用:http://huapengpeng1989412.blog.163.com/blog/static/58828754201291411578566/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM