Исключение Kotlin в потоке "main" org.postgresql.util.PSQLException: ОШИБКА - PullRequest
0 голосов
/ 12 мая 2018

Я использую Kotlin Exposed для ORM в своем веб-приложении.У меня есть пользователь Entity, и он был создан в базе данных (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 голосов
/ 12 мая 2018

Ошибка указывает на то, что он пытается запросить столбец с именем emailSituation, но доступен только emailsitutation.Это может быть связано с тем, как запрос в конечном итоге создается вашей библиотекой. Postgres, как правило, принимает все и строчные буквы для имен столбцов, если вы не заключите в кавычки (что, вероятно, находится вне вашего контроля).Чтобы обойти это, попробуйте в нижнем регистре указать имя столбца, с которым вы сопоставляете:

Изменить:

val emailSituation = bool("emailSituation")

На:

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