Почему я получаю сообщение об ошибке, когда использую в Kotlin?

Мне нужно получить имя_региона по коду_региона из базы данных Oracle

Я использую Exposed для своей программы, но получаю сообщение об ошибке

in thread "main" java.lang.AbstractMethodError
at org.jetbrains.exposed.sql.Transaction.closeExecutedStatements(Transaction.kt:181)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:137)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:75)

Код есть

object Codes : Table("REGIONS") {
val region_code = varchar("region_code",32)
val region_name = varchar("region_name",32)}

Основное веселье содержит

.......
val conn = Database.connect("jdbc:oracle:thin:@//...", driver = "oracle.jdbc.OracleDriver",
    user = "...", password = "...")

transaction(java.sql.Connection.TRANSACTION_READ_COMMITTED, 1, conn) {
        addLogger(StdOutSqlLogger)
        Codes.select { Codes.region_code eq "a" }.limit(1).forEach {
            print(it[Codes.region_name])
        }
    }

person Sergei    schedule 04.03.2019    source источник


Ответы (1)


AbstractMethodError обычно означает, что вы скомпилировали код с одной версией библиотеки, но запускаете его с другой (несовместимой) версией. (См., Например, эти questions.)

Поэтому я бы внимательно проверил ваши зависимости и т. Д.

person gidds    schedule 05.03.2019
comment
Спасибо! Это помогает мне! Я использовал старый драйвер jdbc для Oracle 12. Я изменил версию драйвера на ojdbc7-12.1.0.2.jar - person Sergei; 05.03.2019