线程“main”中的Kotlin异常org.postgresql.util.PSQLException:错误

时间:2018-05-12 12:58:42

标签: postgresql kotlin kotlin-exposed

我在我的Web应用程序中使用Kotlin Exposed for ORM。 我有一个实体用户,它是在数据库中创建的(PostgreSQL) 我想在表(用户)中找到一个值时出现问题,显示此错误

  

线程“main”中的异常org.postgresql.util.PSQLException:错误:   列users.emailSituation不存在提示:也许你的意思   引用“users.emailsituation”列。位置:59

我的数据库是postgresql

用户实体:

object Users : IntIdTable() {
    val name = text("name").index()
    val family = text("family").index()
    val email = text("email").index()
    val emailSituation = bool("emailSituation")
    val mobile = long("mobile").index()
}

class User(id: EntityID<Int>) : IntEntity(id) {
    companion object : IntEntityClass<User>(Users)

    var name by Users.name
    var family by Users.family
    var email by Users.email
    var emailSituation by Users.emailSituation
    var mobile by Users.mobile
}

找到一个值:

transaction {
        logger.addLogger(StdOutSqlLogger)
 println("User: ${User.find { Users.mobile eq 87654 }.joinToString {it.name}}")
    }

我该如何解决?

1 个答案:

答案 0 :(得分:1)

该错误似乎表明它正在尝试查询名为emailSituation的列,但只有emailsitutation可用。这可能与您的库最终构建查询的方式有关。 Postgres will generally accept anything and lowercase it for column names unless you quote it(这可能超出您的控制范围)。要解决此问题,请尝试小写您映射到的列的名称:

更改:

val emailSituation = bool("emailSituation")

要:

val emailSituation = bool("emailsituation")
                                ^
                                +-- That's the difference