java—如何在jpa本机查询中使用“:”?

ehxuflar  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(357)

我正在做一些数据分析,我有一个使用 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 = :firstnamewhere first_name = ?1 并移除了 @Param 从我的方法参数的注解,但它没有帮助。
有没有一种方法可以在这个查询中转义冒号,或者用其他方法分配不使用冒号的rownum变量?

w1e3prcc

w1e3prcc1#

要解决这个问题,您需要用双反斜杠转义这两个点 \\: ```
"SELECT ..., @rownum\:=@rownum+1 as row_number, ... "
^^^

相关问题