Kotlin Exposed / Postgresql在查询中将我的表名置于较低的位置;如何使用大写表名?

时间:2018-04-25 18:38:03

标签: postgresql kotlin kotlin-exposed

我使用Kotlin暴露给具有大写表名的Postgres服务器进行以下SQL查询:

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做到这一点;那么有没有办法使用大写的表名防止它被小写?

2 个答案:

答案 0 :(得分:2)

我能够通过在表字符串中使用转义引号来解决此问题,上述问题的示例如下:

object Table : IntIdTable("\"Table\"") {

答案 1 :(得分:0)

您是否可以提供整个示例并指向抛出异常的位置?从目前的代码中不清楚是谁以及如何尝试创建relation到桌面。