使用 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
.
类型的值
new YearToSecond(
new YearToMonth(),
new DayToSecond(0, 0, 15)
)
我有一个 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
.
new YearToSecond(
new YearToMonth(),
new DayToSecond(0, 0, 15)
)