You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jOOQ从PostgreSQL枚举类型生成Java枚举

问题解答

jOOQ 3.17.13支持开箱即用地为PostgreSQL枚举生成对应Java枚举类,你的问题出在代码生成配置的疏漏上。

问题原因

你的<includes>配置仅指定了task表:

<includes>task</includes>

PostgreSQL的枚举类型task_status是独立的数据库对象,不属于task表的范畴,因此jOOQ的元数据扫描过程中未识别到该枚举类型,无法生成对应的Java枚举类,只能将字段类型降级为Object。

解决方案

修改<includes>配置,将枚举类型也纳入扫描范围:

<includes>task|task_status</includes>

如果需要扫描当前schema下所有表和枚举类型,也可以使用通用匹配模式:

<includes>.*</includes>

验证结果

调整配置后重新执行代码生成,jOOQ会自动生成与task_status对应的TaskStatus Java枚举类,Task实体中的status字段类型会变为TaskStatus,而非Object。

补充说明

PostgresDatabase默认开启<includeEnums>true</includeEnums>配置,只要枚举类型被<includes>规则匹配到,就会被自动识别并生成对应Java枚举,无需额外配置转换器或自定义生成器。

内容的提问来源于stack exchange,提问作者kaqqao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:17:44