hibernate報錯 Parameter index out of range (2 > number of parameters, which is 1)

今天遇到一個hibernate報錯,在查詢的時候,報了一個錯誤

org.hibernate.HibernateException: java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1)

然後我把sql語句和傳遞的變量都反覆查了很多遍,sql裏面明明只有一個問號,傳遞也傳遞了一個變量,但就是報錯。

最後同事提醒我把hibernate的原生sql打印出來,才發現hibernate自動在sql的最後加了一句limit ?

然而我的sql語句的最後一行,是被註釋掉的,如

select * from a

where a.id=?

-- and a.id>10

然後hibernate改成了

select * from a

where a.id=?

-- and a.id>10 limit ?

然後,hibernate再把數量限制的參數加上去,就變成兩個參數,但是隻有一個問號了。

最後把最後一行的註釋刪掉就好了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章