2016-05-13 3 views
0

У нас есть встроенное управление транзакциями при использовании Spring Data REST или его необходимо вручную поддерживать/обрабатывать из вызывающего приложения/службы.Управление транзакциями в Spring Data REST

Скажем, у меня есть два вызова (первый POST (для создания) и PATCH (обновление/вставка ресурса ассоциации с использованием uri-списков)), который я хочу рассматривать как транзакцию.

Благодаря Bharath

+1

Другими словами, вы хотите открыть транзакцию на POST, закрыв ее после PATCH - которая никогда не появится? Извините, но попытка сделать транзакции покрывает несколько запросов HTTP, как-то не кажется очень хорошей идеей ... Но это всего лишь личная догадка. –

ответ

0

В который точка покоя, чтобы иметь отдельные единицы работы. Если вы хотите, чтобы транзакции открывались через вызовы, это, вероятно, знак, который вам нужно настроить для стратегии RESTful.

Посмотрите: Transaction strategy for microservices

1

Весной данных отдыхать каждое действие хранилище выполняется в рамках транзакции. Даже обработчики событий не работают внутри транзакции репозитория. И, конечно, разные действия в REST API выполняются в отдельных транзакциях.

Вот интересный вопрос по этой теме: Handle spring-data-rest application events within the transaction

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

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

Смежные вопросы