Nicolas Lattuada
03/25/2020, 1:28 PMclass PGEnum<T : Enum<T>>(enumTypeName: String, enumValue: T?) : PGobject() {
init {
value = enumValue?.name
type = enumTypeName
}
}
inline fun <reified T : Enum<T>> Table.postgresEnumeration(
columnName: String,
postgresEnumName: String
) = customEnumeration(columnName, postgresEnumName,
{ value -> enumValueOf<T>(value as String) }, { PGEnum(postgresEnumName, it) })
So that column declaration looks like :
internal object MyTable : Table("my_table_name") {
val enumColumnA = postgresEnumeration<MyEnum>("column_name", "postgres_enum_name")
}
tapac
03/31/2020, 8:58 PM