私はDAOクラスを作成し、このクラスの中でEntityManagerを使用して永続操作を実行しようとしていました。 私のデータベースは、persistence.xmlのjta-data-sourceとして定義され、それに応じてWebアプリケーションサーバーにデータソースとして登録されます。JPAトランザクションはEJB内にバインドされていますか?
トランザクションが必要なので、DAO内のEntityManagerのem.persist()メソッドを使用するときに問題が発生します。明らかに、UserTransactionという特別なタイプのトランザクションでなければなりません。私はあなたが@Resource UserTransaction utx;
でこのトランザクションを注入することができます。しかし仕事への注入のために、私のDAOクラスがEJB(@Stateless)することにより、コンテナによって初期化されなければならないことを見つけるウェブの例を検索する
。私のDAOをコンテナ管理することで、DAOクラスを自由に手動で初期化することができなくなります。
DAOクラス内でEJBを作成せずにトランザクションを作成するにはどうすればよいですか? UserTransactionのJNDIを手動で調べなければなりませんか?