我在我的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}}")
}
我该如何解决?
答案 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