Kam*_*yar 4 postgresql orm enums kotlin kotlin-exposed
我已经将某些Postgresql类型添加到Exposed作为扩展。它有两个就绪类型,分别名为enumeration和enumerationByName。我测试了这两者,但都没有成功将Postgre枚举类型映射到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
}
Run Code Online (Sandbox Code Playgroud)
阅读时:
java.lang.IllegalStateException: open is not valid for enum TicketStatus
Run Code Online (Sandbox Code Playgroud)
您应该声明状态列,如下所示:
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
}
Run Code Online (Sandbox Code Playgroud)