使用 jooq 插入区间数据

Insert Interval data using jooq

我有一个 PostgreSQL table,其列的名称为 test_interval,类型为间隔。

test_interval interval

我正在使用 jooq 在 table 中插入数据。在我的 TestTable.java class 中,该字段的类型为:

public final TableField<TestTable, YearToSecond> TEST_INTERVAL = createField(DSL.name("test_interval"), org.jooq.impl.SQLDataType.INTERVAL.nullable(false), this, "");

我正在创建 table 作为:

dsl.createTableIfNotExists(TestTable)
   .column(TestTable.TEST_INTERVAL)
   .execute()  

我想将数据插入 table 并且数据的格式为:

val str = "0 years 0 mons 0 days 0 hours 15 mins 0.00 secs"   
dsl.insertInto(
    TestTable,
    TestTable.TEST_INTERVAL
).values(
    str
)

我收到无法插入类型的错误。我如何使用jooq插入postgres的区间数据类型的数据?

您的 TEST_INTERVAL 列属于 YearToSecond 类型,因此您必须插入该类型的值,而不是 String.

类型的值

只需调用 YearToSecond constructor

new YearToSecond(
  new YearToMonth(),
  new DayToSecond(0, 0, 15)
)