Ситуация следующая:
Method1 имеет четыре метода обновления базы данных. Метод 1 аннотируется с использованием семантики управления транзакциями Spring.
В Method2 есть метод чтения из базы данных, и он вызывается после того, как Method1 завершает выполнение всех обновлений своей базы данных. Method2 также аннотируется с использованием семантики транзакции Spring.
Приходит веб-запрос, контроллер перехватывает запрос и вызывает метод 1, а затем метод 2.
Транзакция также оборачивается вокруг веб-запроса.
Что мне интересно знать:
1. Как Spring знает, что нужно фиксировать обновления базы данных после успешной транзакции? Есть ли ссылка на реализацию Spring, которая выполняет управление транзакциями?
2.Поскольку у нас есть иерархия транзакций: Транзакция вокруг веб-запроса-> Транзакция с распространением = RequestNew для Method1-> Транзакция с распространением = Требуется для метода2, как Spring выполняет управление транзакциями, чтобы гарантировать, что транзакции выполняются в надлежащем контексте с правильным порядком?
Короче говоря, было бы здорово получить игровой отчет о том, как Spring выполняет управление транзакциями во всех его мельчайших деталях, или ссылку на документацию, которая не просто дает объяснение, основанное на JTA или другом аббревиатуре.
Спасибо