我有以下枚举定义:
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 枚举类型的直接答案,但它听起来就像它只适用于其他人。我知道我可以实现自定义生成器或使用枚举转换器,但我想知道 Java 枚举是否可以开箱即用地生成,而我只是做错了。我正在使用 jOOQ 2013 年 3 月 17 日。
您没有在代码生成配置中包含枚举类型:
<includes>task</includes>
请执行此操作:
<includes>task|task_status</includes>