Kotlin Exposed/Postgresql в нижнем регистре вводит имя моей таблицы в запросах; как использовать заглавные имена таблиц?
У меня есть следующий запрос SQL с использованием Kotlin Exposed для сервера Postgres с заглавной буквы таблицы:
object Table: IntIdTable("Table") {
val tC = text("Text")
val vC = text("Value")
}
Database.connect("jdbc:postgresql://...", driver = "org.postgresql.Driver")
transaction {
logger.addLogger(StdOutSqlLogger)
val query = Table.select {
Table.id eq 5
}
query.forEach {
println( it[Table.tC] )
}
}
Но я возвращаюсь Exception in thread "main" org.postgresql.util.PSQLException: ERROR: relation "table" does not exist
Обычно я просто смогу процитировать имя таблицы "Table"
использовать имена таблиц с заглавными буквами, но не могу этого сделать с Kotlin Exposed; Так есть ли способ использовать имя таблицы с заглавной буквы, не допуская его в нижнем регистре?
1 ответ
Мне удалось решить эту проблему, используя экранированные кавычки в строке таблицы, пример для приведенного выше вопроса будет следующим:
object Table : IntIdTable("\"Table\"") {
Не могли бы вы предоставить образец целиком и указать место, где выдается исключение? Из текущего кода неясно, кто и как пытается создать relation
к столу.