2012-04-18 7 views
2

私はJPAとCDIを初めて使い、これらのフレームワークを使用してエンタープライズアプリケーションを作成しようとしています。JPA CDIエンティティにDAOを挿入する

私はどのようにして豆の中に注入し、すべてをきちんとした状態に保つことができます。私はJPAが私のためにリレーションシップなどをロードするようにして、私はもうそれについて心配する必要はありません。私はまだ新しいエンティティを作成するために特定の方法や方法を見つけるためにDAOを使用します。

JPAによって管理されているので、私のエンティティに物を注入したくないということを理解しています。読み込みの代わりにnewキーワードを使用して新しいエンティティを作成する必要があります。

私は、ユーザーとグループがある場合など、自分のエンティティを他のクラスで管理することに慣れています。グループを管理するためにステートレスBeanを使用します(新しいものを作成したり、 DAOを使用してデータを取得して送信します。

私はグループエンティティを使用してユーザーを管理しています(多分これは間違っていますか?)しかし、それはエンティティなので、DAOをグループに注入したくありません。私はこのデザインに何か間違っていることを知っていますが、私はこのためのベストプラクティスを見つけることができません。

すべての管理クラスをEJBにする必要がありますか?私は自分のロジックのDomainクラスを作成することに慣れています。私はこのコンセプトを捨てて、すべてのロジックをEJBに入れ、エンティティだけでデータを保持する必要がありますか?

答えて

1

私はそれが実体だからグループにDAOを注入したくない(多分これが間違っている?)ユーザーを管理するために、グループのエンティティを使用しますが、 。私は このデザインに何か問題があることを知っていますが、私はこのために最高の 練習を見つけることができません。

GroupUserがある場合は、これをコレクション(おそらくOneToMany)としてマップします。

別の別のBeanを使用して永続操作をカプセル化します。 GroupServiceまたはGroupDaoです。このBeanでは、永続性を担うEntityManger(「ユーザーとグループの管理」)を挿入します。

This tutorialから始めるとよいでしょう。

すべての管理クラスをEJBにする必要がありますか?

必ずしもそうではありません。しかし、あなたの要求を知らずに伝えるのはちょっと難しいです(読む:)。より多くの情報を含む孤立した質問を追加することをお勧めします。...

経験則として、エンティティ(グループ、ユーザー)をビジネスロジックと永続性操作(GroupService、。 ..ダオ)。

this bookは、ポストJ2EEパターンに関する優れた概要と説明を提供します。

+0

私のグループは、関係(リスト)と、entitymanagerを含むUserDaoを持っています。私の質問は、私のGroupクラスがUserDaoを持っているか、Daoを管理するEJBを持っていなければなりませんか?また、自分のエンティティではなく、EJBに自分のロジックを入れなければなりませんか? – Rob

関連する問題