Я пытаюсь обновить необработанный составной первичный ключ с помощью hibernate.
Hibernate использует следующий стиль для таких обновлений:
update mytable set mycolumn=321 where (left_pk, right_pk) = (123, 456);
Можно ли принудительно использовать hibernate для использованияследующий стиль?:
update mytable set mycolumn=321 where left_pk = 123 and right_pk = 456;
Оба запроса работают, но с большой разницей (по крайней мере, в MariaDB).
Если мы используем транзакцию repeatable read
, то первый запрос блокирует всю таблицу для обновлений ивторой запрос блокирует только одну строку для обновлений.
Я бы предпочел заблокировать только одну строку, поэтому мне нужно использовать второй запрос.