我正在做一些数据分析,我有一个使用 SELECT ..., @rownum:=@rownum+1 as row_number, ...
获取行数以及结果。但是,当我将其放入jpa方法的本机查询中(使用spring boot/spring data jpa)时,会出现以下异常:
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变量?
1条答案
按热度按时间w1e3prcc1#
要解决这个问题,您需要用双反斜杠转义这两个点
\\:
```"SELECT ..., @rownum\:=@rownum+1 as row_number, ... "
^^^