Как использовать тип перечисления Postgresql через Kotlin Exposed ORM?

Я добавил некоторые типы Postgresql для Exposed как расширения. Он имеет два готовых типа с именем enumeration и enumerationByName . Я тестировал оба из них без успеха для сопоставления типа перечисления типа postgre с классом enum класса Kotlin. При чтении и записи он вызывает ошибку

 enum class TicketStatus(val status: String) { Open("open"), Close("close"), InProgress("in_progress") } class Ticket(id: EntityID<UUID>) : Entity<UUID>(id) { companion object : EntityClass<UUID, Ticket>(Tickets) var geom by Tickets.geom var description by Tickets.description var status by Tickets.status var createdAt by Tickets.createdAt var updatedAt by Tickets.updatedAt var owner by Tickets.owner } 

При чтении:

 java.lang.IllegalStateException: open is not valid for enum TicketStatus 

Вы должны объявить столбец статуса следующим образом:

 object Tickets: Table() { val status = enumeration("status", TicketStatus::class.java) // will create integer column val status = enumerationByName("status", TicketStatus::class.java) // will create varchar with TicketStatus names } 
Intereting Posts
В чем разница между этими способами для определения функций? Не удалось выполнить синхронизацию проекта с градиентом. Основные функции не будут работать должным образом в Android-студии 3.0 Почему у меня есть нежелательный выход Log при слиянии 2 наблюдаемых в другие Observable, которые буферизуют их каждые 10 секунд Вызов прослушивателя в ViewHolder только иногда отвечает Как мое преобразование из String в Double не работает? Создание экземпляра прослушивателя интерфейса в Котлине Котлин: пропуская коротины Как сделать локальный метод расширения доступным в функции с приемником? Как идиоматически преобразовать типы NULL в Котлин? У вас может быть пустой конструктор или конструктор, параметры которого соответствуют полям Обращение с шаблоном FreeMaker с Ktor Kotlin Встроенный сеттер или Нет для создания неиспользуемого сеттера в Котлине? Изменчивый двумерный массив в Котлине Царь Котлин не в схеме java.lang.IllegalStateException: TextView не должен быть нулевым (Android / Kotlin)