首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在JPA本机查询中使用“:”?

如何在JPA本机查询中使用“:”?
EN

Stack Overflow用户
提问于 2018-06-04 10:29:38
回答 1查看 2.5K关注 0票数 5

我正在做一些数据分析,我有一个使用SELECT ..., @rownum:=@rownum+1 as row_number, ...获取行号和结果的SQL查询。但是,当我将其放入JPA方法的原生查询(使用Spring / Spring )时,我会得到以下异常:

代码语言:javascript
代码运行次数:0
运行
复制
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变量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-04 10:41:26

要解决这个问题,您需要使用双反斜杠\\:来转义这两个点。

代码语言:javascript
代码运行次数:0
运行
复制
"SELECT ..., @rownum\\:=@rownum+1 as row_number, ... "
                    ^^^
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50678502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档