【问题标题】:Kotlin Exposed/Postgresql is lower-casing my table name in queries; how to use capitalized table names?Kotlin Exposed/Postgresql 在查询中将我的表名小写;如何使用大写的表名?
【发布时间】:2018-04-25 18:38:02
【问题描述】:

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

【问题讨论】:

  • 另一个很好的例子说明为什么使用带引号的标识符是一个坏主意。

标签: postgresql kotlin kotlin-exposed


【解决方案1】:

我可以通过在表格字符串中使用转义引号来解决这个问题,上述问题的示例如下:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      相关资源
      最近更新 更多