JOOQ добавить к текущему значению при обновлении - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть столбец с текущим количеством событий, которые произошли.Я хотел бы выполнить эквивалент следующего оператора SQL с помощью обновления jOOQ:

update event_table set event_count = event_count + 3;

3 является произвольным,это будет int, представляющий текущий счетчик, обнаруженный в моей Java-программе.

Есть ли способ сделать это, не выбирая значение в одном выборе jOOQ, а затем суммируя в другом обновлении jOOQ, вызывая два взаимодействия с базой данных?

1 Ответ

0 голосов
/ 08 февраля 2019

Каждый оператор SQL может быть преобразован непосредственно в оператор jOOQ.Используйте поддержку операторов UPDATE в jOOQ.https://www.jooq.org/doc/latest/manual/sql-building/sql-statements/update-statement

В частности:

DSLContext ctx = ...

ctx.update(EVENT_TABLE)
   .set(EVENT_COUNT, EVENT_COUNT.plus(3))
   .execute();

Как общее практическое правило:

  • Все функции (например, fn(a, b)) доступны из DSL класс как DSL.fn(a, b)
  • Все инфиксные операторы (например, a op b) доступны из типа Field как a.op(b)
...