首页 > 解决方案 > 自定义 h2 查询中的转义冒号 (':')

问题描述

所以我正在尝试使用它的 JSON_OBJECT 函数为 h2 编写一个自定义查询。JSON_OBJECTJSON_OBJECT(key:value)在我的 Spring 存储库中使用 so 作为一个简单示例的格式,我正在编写类似的查询@Query(value = "SELECT JSON_OBJECT('id':1)", nativeQuery = true)

在 h2-console 中执行相同的查询时,它按预期运行,但在 Spring 中,冒号(':')被视为变量插入的特殊字符,因此在测试它时,它尝试将以下值映射为变量当然会抛出错误。

我试过用 and 转义冒号,\\\\\\ 在冒号和值之间放置一个空格,但似乎没有帮助。

关于如何逃避 char 或让 spring 认为冒号是可接受的字符的任何想法?

标签: javaspring-bootspring-data-jpah2

解决方案


实际上,您可以简单地使用替代语法JSON_OBJECT(KEY 'id' VALUE 1),无需使用转义\\:,转义序列会使您的查询可读性降低。


推荐阅读