または、ドメイン モデルで構成されるドメイン層を作成し、データベースにアクセスするために JPA エンティティと通信しますか? 両方のアプローチの長所と短所は何ですか? ありがとう!
質問する
3456 次
1 に答える
17
これは、ドメインのコーディング方法に大きく依存します。
一般的に (Java では)、永続性を使用するために、JPA アノテーション付き DTO の別個のセットを作成することを好みます。このような DTO は db テーブルに一致し、カスタム リポジトリ内で使用されます。
- クライアントにセマンティック API を公開します
- そのようなDTOに対してクエリを実行します
- ファクトリを使用してドメイン オブジェクトを初期化し、クライアントに返します
このアプローチにより、ドメイン モデルが db スキーマから真に分離され、両方を独立して進化させることができます。このアプローチの短所は、作成するコードが増えることですが、そのようなコードを作成するのは非常に簡単で安価であることがわかります。
エンティティに JPA アノテーションを使用することは非常に一般的なアプローチですが、ドメイン モデルが進化し、より複雑になるにつれて、他のソリューションよりもはるかに高価な問題に直面する必要があるという私の経験です。
于 2013-04-06T12:17:19.347 に答える