在我的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测试时都会遇到上述异常?
至少据我所知,此错误的原因是H2不支持“ metadata :: json->>”。
您是否尝试过直接在h2中执行该代码?