org.h2.jdbc.JdbcSQLSyntaxErrorException:找不到函数“JSON_BUILD_OBJECT”

问题描述 投票:0回答:0

我在测试中使用 h2 db。接下来是我的测试 h2 数据库设置:

private static final String JDBC_URL = "jdbc:h2:mem:test;MODE=PostgreSQL;DB_CLOSE_DELAY=-1";
Connection connection = DriverManager.getConnection(JDBC_URL);

我尝试过 2.2.220 和 2.1.214 h2 版本。 接下来是 SQL 查询:

        var query = SELECT json_build_object('product', c."info"->'product') as info FROM item."Item" AS c          
    INNER JOIN (SELECT "rootId", MAX("revisionNo") AS maxRevisionNo     FROM item."Item"     WHERE "cRootId" = ?    
 GROUP BY "rootId" ) AS subquery ON c."rootId" = subquery."rootId" AND c."revisionNo" = subquery.maxRevisionNo WHERE c."state" = 'active'

我正在尝试用它创建一个准备好的声明:

var statement = connection.prepareStatement(query);

并得到错误:

org.h2.jdbc.JdbcSQLSyntaxErrorException:函数“JSON_BUILD_OBJECT” 没有找到

在真实的 Postgres 数据库中一切正常,但在 Postgres 模式下使用 h2 进行测试时失败。 我可以修复它吗?如何修复?非常感谢您的关注和参与。

java json postgresql unit-testing h2
© www.soinside.com 2019 - 2024. All rights reserved.