Я загружаю некоторые данные в таблицу Postgres, используя методы jOOQ insertInto()
и onDuplicateKeyUpdate()
.Позже я хочу узнать, сколько дубликатов было в моих данных, и, следовательно, их необходимо вернуть, если строка была вставлена или обновлена .
Из моего исследования, проведенного в Postgres .Я нашел RETURNING (not MY_TABLE.xmax = 0) AS updated
как правильный вариант.Однако автоматически сгенерированные классы таблиц Java из jOOQ, похоже, не дают мне доступа к системным столбцам postgres, таким как xmax.
Пока мой запрос:
dsl.insertInto(MY_TABLE)
.columns(
// pkey columns
MY_TABLE.SHIFT,
MY_TABLE.DATE_UTC,
MY_TABLE.TIME_UTC,
MY_TABLE.DURATION,
)
.values(
shiftId,
utcDateId,
utcTime,
duration
)
.onDuplicateKeyUpdate()
.set(MY_TABLE.DURATION, newDuration)
.returning((MY_TABLE.xmax = 0).`às`("inserted"))
.execute()
Это приводит к следующей ошибке времени компиляции:
Ошибка: Kotlin: Неразрешенная ссылка: XMAX
Я перепроверил свою конфигурацию создания таблицы Maven jOOQ и не исключаю ни одного столбца,Я также прочитал все, что смог найти на собственном веб-сайте jOOQ, но не нашел никакой полезной информации для этого конкретного варианта использования.
Любые советы о том, что я мог бы сделать здесь?