2012-02-09 53 views
0

我有一個EJB,其方法(除其他外)加載實體並對其進行修改。如果方法完成,那麼該實體的修改會自動提交到數據庫,而無需調用EntityManager.aveOrUpdate()方法?並且當該方法失敗時,該EJB方法的事務將隨着該實體的修改一起回滾?EJB方法的JPA實體和TransactionContext

回答

1

使用EJB隱式地,您的方法與事務綁定。 如果您使用實體管理器加載實體,則該實體附帶有持久性上下文,因此如果您在對象上進行了修改,則在事務結束時,如果一切正常,則事務提交併將修改刷新到數據庫,否則如果發生錯誤,事務將回滾,並且修改將被丟棄。

+0

如果出現問題並引發異常,則回滾操作取決於它是否爲運行時異常,或者它是否使用@ApplicationException註釋聲明。請參閱http://blog.dblevins.com/2010/07/applicationexception-is-evil-sort-of.html – 2012-02-09 19:23:04

+0

感謝您的回答。 – Barcelona 2012-02-10 00:22:24