问题陈述
使用 MySQL 运行本机 JPA 查询包含 ':' 的用户变量由于语法无效而引发异常:不允许在 ':' 后面添加空格。
解决方案
要解决此问题,您需要转义“:”字符。这可以通过在它们前面加上反斜杠 '' 字符来实现。
这是更正的查询:
SELECT foo, bar, baz, @rownum:= if (@id = foo, @rownum+1, 1) as rownum, @id := foo as rep_id FROM foo_table ORDER BY foo, bar desc
JPA 中的实现
Query q = getEntityManager().createNativeQuery(query, SomeClass.class); return q.getResultList();
注意:
提供的解决方案假设 MySQL 数据库。如果使用其他数据库,转义特殊字符的语法可能会有所不同。因此,有必要参考具体的数据库文档来获取推荐的转义方法。
以上是如何在 MySQL 的 JPA 查询中转义冒号字符 ':'?的详细内容。更多信息请关注PHP中文网其他相关文章!