Что эквивалентно методу saveOrUpdate hibernate в jooq? - PullRequest
1 голос
/ 02 апреля 2019

Я хочу обновить строку, если она существует, иначе вставьте ее.Есть ли какой-нибудь удобный метод, такой как saveOrUpdate от hibernate в jooq?

В настоящее время я проверяю в базе данных, существует ли она, затем запустите запрос на обновление, в противном случае вставьте его.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2019

Вы можете использовать один из различных операторов UPSERT, поддерживаемых jOOQ, в зависимости от вашей РСУБД:

  • INSERT .. ON DUPLICATE KEY UPDATE, изначально поддерживаемых MySQL.Его можно эмулировать с использованием обеих следующих опций
  • INSERT .. ON CONFLICT DO UPDATE, которые изначально поддерживаются PostgreSQL.Его можно эмулировать, используя следующую опцию
  • MERGE, которая изначально поддерживается многими СУБД и стандартом SQL
0 голосов
/ 02 апреля 2019

От этого переполнения стека ответ здесь

если вы прочитаете запись из базы данных и вызовете record.store () , вы получите имеют такое же поведение метода hibernate saveOrUpdate , это работает отлично!

Но в большинстве случаев вы не будете читать записи с базы данных, вы получите запись от контроллера или представление для Например, в этом случае метод record.store () не обновляет

...