Вставить данные интервала с помощью jooq - PullRequest
0 голосов
/ 16 июня 2020

У меня есть таблица PostgreSQL со столбцом с именем столбца test_interval и интервалом типа.

test_interval interval

Я использую jooq для вставки данных в таблицу. В моем классе TestTable. java поле имеет тип:

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

Я создаю таблицу как:

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

Я хочу вставить данные в таблицу и данные имеют вид:

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

Я получаю сообщение об ошибке, не могу вставить тип. Как я могу вставить данные интервала типа данных postgres с помощью jooq?

1 Ответ

0 голосов
/ 16 июня 2020

Ваш столбец TEST_INTERVAL имеет тип YearToSecond, поэтому вам нужно вставить значение этого типа, а не типа String.

Просто вызовите YearToSecond конструктор

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