Распространение Spring требуется из Spring Docs

Добавляя к этому вопрос, что, если метод b() вызывается из a() через прокси? Будет ли это отдельная логическая транзакция с теми же настройками распространения и изоляции, как указано в документах:

Если для параметра распространения установлено значение PROPAGATION_REQUIRED, для каждого метода, к которому применяется этот параметр, создается область логической транзакции. Каждая такая логическая область транзакции может определять статус только для отката индивидуально, при этом внешняя область транзакции логически независима от внутренней области транзакции. Конечно, в случае стандартного поведения PROPAGATION_REQUIRED все эти области будут сопоставлены с одной и той же физической транзакцией. Таким образом, маркер только для отката, установленный во внутренней области транзакции, действительно влияет на вероятность фактической фиксации внешней транзакции (как и следовало ожидать).

Может ли кто-нибудь объяснить разницу между:

область логической транзакции создается для каждого метода, к которому применяется параметр. Каждая такая логическая область транзакции может определять статус только для отката индивидуально, при этом внешняя область транзакции логически независима от внутренней области транзакции.

а также

Конечно, в случае стандартного поведения PROPAGATION_REQUIRED все эти области будут сопоставлены с одной и той же физической транзакцией.


person Adithya    schedule 16.07.2018    source источник
comment
Не уверен, почему вы думаете, что должна быть разница. второе предложение дополняет первое. В чем именно заключается ваш вопрос.   -  person JB Nizet    schedule 16.07.2018
comment
В № 1, если я вызываю met2() из met1() с использованием прокси-сервера, причем оба метода имеют одинаковое распространение (ОБЯЗАТЕЛЬНО) и откат только для met2(), я заметил, что met1() также откатывается. Таким образом, оператор, внешняя транзакция и внутренняя транзакция имеют независимые откаты, было непонятно. Является ли предложение № 1 общим для всех типов распространения?   -  person Adithya    schedule 16.07.2018
comment
Каждый транзакционный метод определяет область транзакции. Если распространение требуется, то физическая транзакция, связанная с областью действия met2, совпадает с физической транзакцией, связанной с областью действия met1. Таким образом, установка статуса отката из met2 откатывает физическую транзакцию, начатую при вызове met1.   -  person JB Nizet    schedule 17.07.2018