使用的 Hibernate3 進行 MySQL 查詢,語句如下:
SELECT @rowNum := @rowNum + 1 AS 'rank', a.* FROM ( SELECT * FROM t_score ) a, ( SELECT @rowNum := 0 ) b
報出如下錯誤:
org.hibernate.QueryException: Space is not allowed after parameter prefix ':'
原因:
在 Hibernate 中 :爲佔位符,作爲預編譯使用。
解決辦法:
在 := 前後增加 /*'*/
SELECT @rowNum /*'*/:=/*'*/ @rowNum + 1 AS 'rank', a.* FROM ( SELECT * FROM t_score ) a, ( SELECT @rowNum /*'*/:=/*'*/ 0 ) b