我正在做一些数据分析,我有一个使用SELECT ..., @rownum:=@rownum+1 as row_number, ...
获取行号和结果的SQL查询。但是,当我将其放入JPA方法的原生查询(使用Spring / Spring )时,我会得到以下异常:
Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: Space is not allowed after parameter prefix ':'
我将@Query(nativeQuery = true,
添加到我的方法中,并将参数从where first_name = :firstname
更改为where first_name = ?1
,并从方法参数中删除了@Param
注释,但这并没有帮助。
是否有一种方法可以在此查询中转义冒号,或者有其他方法分配不使用冒号的rownum变量?
发布于 2018-06-04 02:41:26
要解决这个问题,您需要使用双反斜杠\\:
来转义这两个点。
"SELECT ..., @rownum\\:=@rownum+1 as row_number, ... "
^^^
https://stackoverflow.com/questions/50678502
复制相似问题