Коли ви викликаєте метод поза @Transactional
блоком транзакції, батьківська транзакція перейде до нового методу. Він використовуватиме те саме підключення від батьківського методу (with @Transactional
) та будь-який виняток, викликаний викликаним методом (без @Transactional
, призведе до відкоту транзакції, як налаштовано у визначенні транзакції.
Якщо ви викликаєте метод із @Transactional
анотацією з методу, що знаходиться @Transactional
в тому самому екземплярі, тоді викликані методи транзакційної поведінки не вплинуть на транзакцію. Але якщо ви викликаєте метод із визначенням транзакції з іншого методу з визначенням транзакції, і вони знаходяться в різних екземплярах, тоді код у викликаному методі буде слідувати за визначеннями транзакцій, вказаними у викликаному методі.
Ви можете знайти більш детальну інформацію в розділі декларативного управління транзакціями в документації пружинних угод .
Весняна декларативна модель транзакції використовує проксі-сервер AOP. тому проксі-сервер AOP відповідає за створення транзакцій. Проксі-сервер AOP буде активним лише в тому випадку, якщо методи з екземпляром будуть викликані ззовні екземпляра.