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

如何使用JOOQ创建PostgreSQL的daterange类型列?

正确使用jOOQ创建PostgreSQL daterange列的方法

不要使用标记为@internal的BuiltInDataType,jOOQ提供了专门的公开API来处理PostgreSQL的扩展类型,推荐两种方式:

1. 优先使用jOOQ代码生成器

如果你的项目使用jOOQ代码生成器,只需确保生成配置正确识别PostgreSQL扩展,生成器会自动为daterange类型生成对应的实体类、字段类型和绑定逻辑,直接引用生成的表字段即可,无需手动定义。

2. 手动定义DataType(无代码生成器场景)

直接使用jOOQ提供的PostgresDataType类中的DATERANGE常量,这是官方公开的API,安全且规范:

DSLContext dslContext = DSL.using(SQLDialect.POSTGRES);
dslContext.createTable("foo")
    .column("date_column", PostgresDataType.DATERANGE)
    .execute();

这段代码会生成你期望的SQL:

create table foo (
    date_column daterange
)

PostgresDataType封装了所有PostgreSQL特有的数据类型(包括各类范围类型、JSON类型等),使用它不仅能避免依赖内部API,还能自动处理Java对象与数据库类型的绑定转换,无需额外编写绑定器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:33:11