首页 > 解决方案 > 与 H2 一起使用时出现 NoSuchMethod 错误

问题描述

我正在尝试使用暴露和 h2 在 ktor 服务器内进行存储。

建立内存连接后Database.connect("jdbc:h2:mem:test", driver = "org.h2.Driver")

每当我尝试读/写数据库时,都会出现以下错误:

java.lang.NoSuchMethodError:
org.h2.jdbc.JdbcConnection.getSettings()Lorg/h2/jdbc/JdbcConnection$Settings; 在 org.jetbrains.exposed.sql.vendors.H2Kt.isMySQLMode(H2.kt:17)

我的 build.gradle.kts 包含以下内容:

implementation("com.h2database", "h2", "1.4.197")
implementation("org.jetbrains.exposed", "exposed-core", "0.24.1")
implementation("org.jetbrains.exposed", "exposed-dao", "0.24.1")
implementation("org.jetbrains.exposed", "exposed-jdbc", "0.24.1")

有任何想法吗?

标签: kotlinh2kotlin-exposed

解决方案


正如 Evgenij Ryazanov 在上面的评论中指出的那样,事实证明这是我正在使用的版本组合的问题。

作为临时修复,我已将 H2 版本更新为 1.4.200


推荐阅读