Java Spring H2:BadSqlGrammarException:错误的SQL语法

问题描述 投票:-1回答:1

在我的junit测试中,我正在使用com.h2database库作为内存db。

在我的应用中,我有以下查询:

String query = String.format("SELECT MIN(metadata::json->>'mVersion') FROM %s", ConnectorTables.MY_RABLE.getTableName());

并且在测试中出现以下错误:

org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [SELECT MIN(metadata::json->>'mVersion') FROM my_table]; nested exception is org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "SELECT MIN(METADATA::JSON-[*]>>'mVersion') FROM MY_TABLE"; SQL statement:

当我直接在postgres客户端中运行查询时,它按预期运行(返回数字):

SELECT MIN(metadata::json->>'mVersion') FROM my_table

任何想法为什么在使用h2database运行我的junit测试时都会遇到上述异常?

spring jdbc junit h2
1个回答
0
投票

至少据我所知,此错误的原因是H2不支持“ metadata :: json->>”。

您是否尝试过直接在h2中执行该代码?

© www.soinside.com 2019 - 2024. All rights reserved.