Во-первых, «вложенные» транзакции, в том смысле, что существует несколько запущенных транзакций, зависящих друг от друга, не поддерживаются, afaik.
Тогда propagation=REQUIRED
означает, что все методы с таким распространением будут:
- начать новую транзакцию, если ее не существует
- участвовать в существующей транзакции, если таковая существует.
Это означает, что в вашем сценарии сбой в F
приведет к откату всей транзакции (поскольку это отдельная транзакция, запущенная A
и распространенная на другие методы)