Оптимистическая блокировка данных весной JDBC - PullRequest
0 голосов
/ 27 февраля 2019

Я заметил, что в Spring Data JDBC, похоже, не реализована оптимистическая блокировка (что-то вроде аннотации @Version в JPA).

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

Какой лучший способ реализовать оптимистическую блокировку для агрегатов?

1 Ответ

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

Это зависит от вашей ситуации.Если у вас есть только 7 агрегатов, из которых 5 являются агрегатами с одним объектом, перейдите к решению @Modifying для отдельных агрегатов и напишите пользовательские методы для других 2.

Если у вас больше агрегатов, состоящих из более чем одного классарассмотреть вопрос о том, как правильно его реализовать и представить PR.Проблема уже существует: https://jira.spring.io/projects/DATAJDBC/issues/DATAJDBC-219

Основные изменения кода будут в SqlGenerator , который должен будет добавить предложение where для агрегатных корней, если у них есть атрибут версии.

Если вы заинтересованы в PR, и вам нужна дополнительная помощь, пожалуйста, оставьте комментарий по этому вопросу.

...