自定义 h2 查询中的转义冒号 (':')

Escape colon (':') in custom h2 Query

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

的查询

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

我尝试使用 \\\ 转义冒号,并在冒号和值之间放置 space,但似乎没有帮助。

关于如何转义字符或使 spring 认为冒号是可接受的字符有什么想法吗?

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