2012-01-20 1 views
2

誰かがJBoss @Service EJBのサポートトランザクションが分かっていますか?私はEntityManagerで作業したいが、 "トランザクション内でEntityManagerを使用する必要がある"というエラーが出る。 EJB上でコンテナ管理トランザクションとREQUIREDトランザクションを明示的に指定しても、違いはありません。@Service JBoss EJBのサポートトランザクションを実行しますか?

ありがとうございました。

@PersistenceContext(unitName = "MyPersistenceContextName") 
    private EntityManager m_entityManager; 

そしてここでは、失敗したコードです:

m_entityManager.persist(objectToSave); 
    m_entityManager.flush(); 

それは最初に失敗した。ここ

更新

は、私はEntityManagerを取得するために使用していたコードですライン。

+0

理論上、@Serviceアノテーションは、コンテナによって管理されるローカルインタフェースとリモートインタフェースをサポートしているため、トランザクションをサポートします。あなたのコードを投稿してください。 –

+0

確かに、我々は 'org.jboss.annotation.ejb.Service'について話しますか? –

答えて

1

注釈@Serviceを適用すると、別のクラスローダー&上で実行される具体的な名前のMBeanサーバーにBeanがインストールされます。したがって、これは、MBeanがトランザクション&がコンテキストにアクセスできないようにサポートしていない理由です。

MBeanを介してデータベースとやりとりする代わりに、JNDIルックアップを介してアクセスできる他のEJB Beanに委譲することができます。

関連する問題