自定义 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)
,无需使用转义 \:
,转义序列会降低您的查询的可读性。
所以我正在尝试使用其 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)
,无需使用转义 \:
,转义序列会降低您的查询的可读性。