我有以下枚举定义:
create type task_status as enum ('ok', 'fail')
一张桌子:
create table if not exists task
(
id uuid default gen_random_uuid() not null primary key,
status task_status,
...
);
和以下代码生成配置:
<generator>
<name>org.jooq.codegen.JavaGenerator</name>
<generate>
<fluentSetters>true</fluentSetters>
<daos>true</daos>
<springAnnotations>true</springAnnotations>
<springDao>true</springDao>
</generate>
<database>
<name>org.jooq.meta.postgres.PostgresDatabase</name>
<inputSchema>public</inputSchema>
<includes>task</includes>
<includeTables>true</includeTables>
<includeSystemTables>false</includeSystemTables>
<includeInvisibleColumns>false</includeInvisibleColumns>
<includeEmbeddables>true</includeEmbeddables>
<includeRoutines>false</includeRoutines>
<forcedTypes>
<forcedType>
<name>INSTANT</name>
<includeTypes>timestamptz</includeTypes>
</forcedType>
</forcedTypes>
</database>
<target>
...
</target>
</generator>
当我运行codegen时,我得到:
public class Task implements Serializable {
private Object status;
...
}
虽然我没有找到关于jOOQ是否真的可以从该列类型生成Java枚举类型的直接答案,但它是sounds和it just works for others.我知道我可以实现定制生成器或使用枚举转换器,但我想知道Java枚举是否可以开箱即用地生成,我只是做错了.我在JOOQ3.17.13上.