Как использовать тип перечисления 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