2012-04-03 12 views
0

私のアプリケーションではJPAが使用されており、GlassFish 3.1(したがってEclipseLinkを使用)の配下に配備されています。うまくいきましたが、今はDAOの実装を使用しようとしています。GlassFish 3.1のJPAとDAOの実装

that articleが見つかりました。しかし、永続コンテキストの注入では機能していないようです。したがって、私はエンティティクラス、ステートレスEJBクラスとpersistence.xmlファイルを持っています。私のEJBでは@PersistenceContext(name=...)注釈。それはそれが働いているように。

DAOインターフェイスとJPA DAOクラス(インターフェイスを実装)を追加しました。私のJPA DAOでは、永続コンテキストを注入しようとしていますが、動作していません。例外はありませんが、nullのままです。

どうすればいいですか?

GlassFishでこれを行うことができない場合は、最初に、エンティティマネージャをDAOに渡すことを考えました。それは働いていますが、それはいいですか?

第2の考え方は、JPA DAOをステートレスBeanのように実装し、それを私のEJBに挿入することです。それは働いていますが...?それはいい考えですか、そうではありませんか?

+0

あなたの質問に答えを受け入れるかどうか確認してください:http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work – Jim

+0

??あなたは他の質問を意味しますか?さて、回答がない場合、または回答が私の質問に答えていない場合は、回答を受け入れることはできません。 – tweetysat

答えて

1

オブジェクトがコンテナによって管理されていない限り、PersistenceContextを挿入することはできません。 @Statelessまたは@Singletonなどのものである必要があります。また、CDI(JSR-299)を使用してBeanをコンテナ管理し、インジェクションを動作させることもできます。あるいは、あなたは話をするためにリンクしたその記事のように、春を使うことができます。

+0

http://stackoverflow.com/questions/2021370/ejb-3-1-ejb-injection-into-pojo – Jim

+0

よろしくお願い致します。私は記事が春を使っているのを見たことがありませんでした...しかし、daoを無国籍にする良い方法ですか?私は良いアイデアではないと伝える人々(このフォーラムでさえ)を読んだ。 – tweetysat

+0

DAOの使い方について常に議論があります。私はAdam Bienとほぼ同意しがちですが、一般的にEJB 3.xではそれらを必要としません。 http://www.adam-bien.com/roller/abien/entry/jpa_ejb3_killed_the_dao http://www.adam-bien.com/roller/abien/entry/you_should_dao_if http://www.adam-bien.com/ローラー/ abien /エントリー/ daos_aren_t_dead_but – Jim

関連する問題