Sobes.tech
Junior — Middle

Θα ξεκινάει αυτόματα μια νέα συναλλαγή κατά την κλήση μιας συναλλαγικής μεθόδου μέσα σε μια άλλη συναλλαγική μέθοδο που βρίσκονται σε διαφορετικές υπηρεσίες;

sobes.tech AI

Απάντηση από AI

В Java поведение транзакций при вызове одного транзакционного метода из другого зависит от настроек управления транзакциями и используемого фреймворка (например, Spring).

Если в разных сервисах используются стандартные настройки с propagation = REQUIRED (по умолчанию в Spring), то при вызове транзакционного метода внутри другого транзакционного метода новая транзакция не создаётся — используется существующая (вложенная транзакция не создаётся).

Для запуска новой транзакции внутри существующей можно использовать propagation = REQUIRES_NEW, тогда при вызове метода будет приостановлена текущая транзакция и создана новая.

Таким образом, автоматического запуска новой транзакции при вызове транзакционного метода в другом сервисе не происходит, если не указано иное через настройки propagation.