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

时间:2020-09-03 20:18:53

标签: java spring-boot spring-data-jpa h2

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

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

我尝试使用\\\\\\来使冒号转义,并在冒号和值之间放置一个空格,但似乎无济于事。

关于如何逃脱字符或让春天认为冒号是可以接受的字符的任何想法吗?

1 个答案:

答案 0 :(得分:1)

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