我有一个具有以下结构的枚举 SomeType:
enum class SomeType {
Type1,
Type2
}
我也有一张包含该枚举的表格:
create type users.some_type as enum ('Type1','Type2');
create table users.some
(
id bigint default nextval('users.some_seq'),
type users.some_type not null,
primary key (id)
);
枚举生成为:
@Suppress("UNCHECKED_CAST")
enum class SomeType(@get:JvmName("literal") public val literal: String) : EnumType {
Type1("Type1"),
Type2("Type2");
override fun getCatalog(): Catalog? = schema.catalog
override fun getSchema(): Schema = Users.USERS
override fun getName(): String = "some_type"
override fun getLiteral(): String = literal
}
但是,当我尝试为该表编写插入方法时,它无法识别枚举类型:
@Transactional
fun save(some: Some) =
dslContext.insertInto(
SOME,SOME.TYPE,
).values(some.someType)
我正在使用 Kotlin 和 Postgres,但我不认为这个问题是 Kotlin 特有的