Я только что прочитал главу «Транзакции» (10) «Освоение EJB 3.0», и теперь я запутался во вложенных транзакциях.
В книге говорит
: «Определенный EJB менеджер транзакций не поддержка вложенных транзакций; требуется поддержка только плоских транзакций." (Сайт 278, Примечание)
Этот факт описан не только в этой книге, я нашел это утверждение в других книгах/веб-сайтах.
Но если я назову "Требуется новый" аннотированный метод из, скажем, «обязательный» аннотированный метод, у меня есть вложенная транзакция, не так ли? Я могу откатить внутреннюю транзакцию или зафиксировать ее, не затрагивая внешнюю транзакцию. И если я хочу, чтобы внешняя транзакция была прервана, я возвращаю исключение EJBException, и вся транзакция будет отменена.
Значит, это просто не требуетсяспецификацией EJB 3.0, или я что-то неправильно понял? Я просто не могу понять разницу между вложенными транзакциями и описанным поведением.
С уважением Norman