2

我有以下使用 Kotlin 的 SQL 查询暴露给具有大写表名的 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 做到这一点;那么有没有办法通过防止它被小写来使用大写的表名?

4

2 回答 2

2

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

object Table : IntIdTable("\"Table\"") {
于 2020-03-13T17:57:15.487 回答
0

您能否提供整个示例并指出引发异常的位置?从目前尚不清楚谁以及如何尝试创建relation表格的代码。

于 2018-04-26T07:28:53.863 回答