Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Где сделать commit транзакции в managed bean?


Автор: ainkin 23.10.2006, 18:57
Приветствую.

Приложение использует managed bean, и все вызовы методов EJB, которые совершаются из этого bean, должны быть частью одной транзакции. Для этого я использую инъекцию UserTransaction, вызывая begin() в свойстве, обрабатывающем эту инъекцию. А вот где её закоммитить? Первая мысль -- сделать это в методе с аннотацией @PreDestroy. Но когда я это делаю, получаю исключение IllegalStateException, говорящее, что текущий поток не связан ни с какой с транзакцией. Следующая мысль -- сделать commit в скриптлете. Но код в JSP вызывает отвращение; зачем тогда вообще переносить логику в bean, если придётся также мусорить и в теле страницы?

В общем, вопрос. Какое место является рекомендуемым для commit-а транзакции?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)