2011-10-21 8 views
3

私はSpringとTapestryと共にJPA/EclipseLinkを使用するWebアプリケーションで作業します。DTOなしのWebレイヤーでJPAエンティティのdirecltyを操作する

現在のところ、私のWebレイヤーは、DTOを使用せずにJPAエンティティを直接取得して表示します。

これは良い考えですか?私のソリューションの長所と短所は何ですか?代替案は何ですか?私はDTOの実装に気をつけるべきですか?

よろしく、

答えて

4

JPAエンティティは、プレーンのPOJOであり、したがって(デタッチ状態では)DTOの完璧な例です。もし絶対に必要でないなら、私は抽象化の別の層を作ることを心配しないでしょう。明示的なのDTOを使用して検討するかもしれないここで私の頭の上に

状況は、以下のとおりです。

  1. あなたは(必要としないGUI層に使用される複合オブジェクトを必要とするだろうときJPAエンティティから直接フィールドを使用することができます(つまり、異なるオブジェクトのデータを結合するか、データの一部のみを使用し、クライアントに他の部分へのアクセスを許可したくない場合)
  2. ビジネスロジックがエンティティの周りに構築されるドメイン駆動型設計。この場合、エンティティは単純なJava Beansではなく完全なビジネスロジックコンポーネントであるため、クライアントに直接公開したくない場合があります。

いつも自分自身に質問してください。抽象化の別のレイヤーを紹介し、特定のケースでは必要な場合は、常に自分自身に質問してください。

HTH。

関連する問題