私は、データベース(MySQL)、永続性(JPA)、ビジネス(EJBのステートレスセッションBeanに似たPOJO)、プレゼンテーション(Java Swing)の4つの層でJavaアプリケーションを開発しています。
プレゼンテーション層と永続性層を完全に分離することにしました。したがって、すべてのデータに対するすべての変更は、ビジネス層を介して行われます。このように、プレゼンテーション層はエンティティクラスが存在することさえ知りません。これにより、セッションBeanは、エンティティを変更する前にプレゼンテーションから受け取った値を検証または変換する必要がある場合があるため、渡されるデータをより適切に制御できます。
ただし、セッションBeanは、大量の情報(多くのプロパティを持つエンティティのリストなど)を呼び出し元に送信する必要がある場合があります。そして、これは複雑になります。これは、セッションBeanを採用した設計によれば、これらすべてのエンティティを別のエンティティにアンラップする必要があるためです。エンティティのリストを配列のリスト(配列の各メンバーがエンティティのプロパティに対応している)に変換しようとしましたが、これは非常に欠陥があり、エラーが発生しやすく、非効率的です。
プレゼンテーションにデータを送信する正しい方法は何でしょうか?セッションBeanの背後にエンティティを隠すという概念はまったく意味がありますか?そのようなアプリケーションの一般的なパターンは何ですか?