Управляемая компонентом транзакция: распространение транзакции
Я новичок в EJB. Я читал, что одним из побочных эффектов управляемых компонентом транзакций (BMT) является то, что транзакция не распространяется, если мы вызываем метод другого компонента BMT. Но из-за третьего свойства ACID (изолирующего) означает ли это, что второй метод (внутренний) не увидит изменений, внесенных в первые методы (внешний)?
1 ответ
Управляемые компонентом транзакции только означают, что вы сами кодируете границы транзакций в своем компоненте.
Принимая во внимание, что управляемые контейнером транзакции означают, что вы позволяете контейнеру (то есть серверу приложений) выполнять грязную работу по открытию, закрытию, откату... ваших транзакций за вас.
В обоих случаях обычно какой-то центральный TransactionManager используется для доступа к текущей транзакции или для создания новой.
Означает ли это, что второй метод (внутренний) не увидит изменений, внесенных в первые методы (внешний)
Если вы используете один и тот же TransactionManager (и одну и ту же транзакцию) в обоих методах, внутренний метод должен увидеть изменения внешнего.