1

いくつかの JPA/Hibernate エンティティを含む SEAM アプリがあります。そして、クエリ、永続化メソッドをどこに置くべきか疑問に思っています。

デフォルトの選択では、注入されたセッション Bean レイヤーに配置されているようです

@PersistenceContext(...) @Inject EntityManager entityManager;

しかし、エンティティ自体にメソッドが必要だと思います。長所/短所は何ですか?

  1. テスタビリティ?
  2. 素敵?
  3. パフォーマンス?

また、セッション Bean ではなくエンティティのメソッドから EntityManager などと対話するためのベスト プラクティスへのリンクを持っている人はいますか?

ベスト、アンダース

4

2 に答える 2

2

私は SEAM の経験はありませんが、Java プロジェクトでの経験から、Bean を持続メソッドから遠ざけるのが最も簡単であることがわかりました。私たちが通常行うこと:

  • ビジネス オブジェクト用の Bean を用意する (たとえば、「ユーザー」や「設定」など)
  • これらの Bean を永続化および取得できる DAO レイヤーを用意する (単純な CRUD)
  • Bean を処理する方法、およびおそらく Bean の集合体を構築する方法さえあるサービス層を用意します。

このようにして、すべてがかなり分離され、単体テストが容易になります。通常、この設定ではパフォーマンスは問題になりません。

于 2008-10-08T15:28:51.867 に答える
1

はい、それは私が以前に行ったことでもあります。

一般に、EJB は非常に冗長でボイラープレート的だと思いますが、SEAM は実際には少し役に立ちます。そのため、現在のプロジェクトでは、クエリと永続化のためだけにセッション Bean の余分なレイヤーが私を悩ませています。このレイヤーを削除できれば、かなり簡潔なアプリを作成できる気がします...

于 2008-10-08T15:34:07.783 に答える