2015-12-30 79 views
0

我有一個EJB 3 bean。其中事務管理是容器管理的,並且事務屬性是必需的。EJB 3事務邊界:調用非事務性類

從這個bean的一個方法我實例化另一個類,這是非事務性的,並調用一個方法來委託持久任務。在這種方法中,我傳遞了EntityManager實例,它由PersistanceContext注入到上述bean中。現在,當我打電話的EntityManage#persist我得到異常說:

的操作需要在一個事務

我懷疑這種異常的原因中執行的是由於交易不可在這第二課。我對嗎?

如果我不想改變代碼流,是否有替代方法來實現這一點?

+0

發佈您的代碼。這應該很好。同時發佈persistence.xml文件。 –

回答

0

是的,你說得對。需要在事務中調用persist()。以某種方式,您必須刪除呼叫才能繼續。否則,您可能會被迫將一些非事務類轉換爲Enterprise JavaBeans。