以下hibernate查询失败:
select 1 as "{jsonprop:'string'}" from dual
有以下例外:
org.hibernate.QueryException: Space is not allowed after parameter prefix ':' [ select 1 as "{json:'string'}" from dual]
有没有办法逃避Hibernate 4中的冒号角色?我试过\:和::但都没有用。我已经看到提到这可能已在v3解析器中得到纠正,但它仍然失败 - 即使冒号在内是一个常量。
答案 0 :(得分:0)
我没有快速测试方法,但我相信'\:'是你需要的。
select 1 as "{jsonprop\\:'string'}" from dual
请参阅https://stackoverflow.com/a/11971764/3684299
如果这不起作用,您在哪里定义查询:在命名查询文件中或在代码中的字符串中?
答案 1 :(得分:0)
如果您使用的是Hibernate 5+,我相信您可以使用'::'转义':'。 see here
如果您使用的是4.x,我使用的解决方案是使用like / ilike和'_'字符。