Как я могу использовать обновление записи JOOQ для обновления только встроенных изменений в поле jsonb? - PullRequest
0 голосов
/ 22 февраля 2020

У меня уже есть привязка из JSONB к моему POJO (https://www.jooq.org/doc/latest/manual/code-generation/custom-data-type-bindings/)

И я уже видел выпуск # 5394 JOOQ (https://github.com/jOOQ/jOOQ/issues/5394) и временное решение.

Теперь я пытаюсь понять, как я могу обнаружить изменения внутри моего POJO и заставить JOOQ обновлять только эти изменения с помощью jsonb_set

1 Ответ

0 голосов
/ 24 февраля 2020

Проблема # 5394 , которую вы указали, не связана строго с вашим запросом. # 5394 относится к обычным, нормализованным UpdatableRecord экземплярам, ​​где некоторые значения не должны автоматически рассматриваться для вставки или обновления.

В вашем случае вы работаете со вложенными структурами данных в виде JSON , Для jOOQ столбец JSON является непрозрачным и не имеет представления о вложенной структуре. Если вы хотите представить эту функциональность, вам придется сделать это полностью самостоятельно. Однако вы не можете сделать это в настоящее время (jOOQ 3.13) с вызовами UpdatableRecord и record.store(). Вам придется написать свой собственный API, который переводит такие изменения записи в операторы вставки или обновления.

Я могу придумать два способа сделать это:

...