Ошибка noSuchMethod при использовании Exposed с H2

#kotlin #h2 #kotlin-exposed

#kotlin #h2 #kotlin- открытый

Вопрос:

Я пытаюсь использовать exposed и h2 для хранения внутри сервера ktor.

После установки соединения в памяти с Database.connect("jdbc:h2:mem:test", driver = "org.h2.Driver")

Всякий раз, когда я пытаюсь прочитать / записать в базу данных, я получаю следующую ошибку:

java.lang.Ошибка noSuchMethod:
org.h2.jdbc.JdbcConnection.getSettings()в файле/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")
  

Есть идеи?

Комментарии:

1. If должно быть исправлено вместе с этой проблемой: github.com/JetBrains/Exposed/issues/919

2. Старый код использует внутренний класс из H2, который существует только в H2 1.4.199 и H2 1.4.200, но не существует в более старых версиях и в предстоящей следующей версии.

Ответ №1:

Как указал Евгений Рязанов в комментариях выше, оказывается, это проблема с моей комбинацией версий, которые я использую.

В качестве временного исправления я обновил свою версию H2 до 1.4.200