例: データベースに「CustomerOrdersOnHold」という SQL ビューがあります。このビューは、特定の顧客と注文データ フィールドのフィルターされた組み合わせを返します。アプリケーションでこのビューからデータを取得する必要があります。このようなビューへのアクセスは、リポジトリ パターンにどのように適合しますか? 「CustomerOrdersOnHoldRepository」を作成しますか? このような読み取り専用ビューは、集約ルートと見なされますか?
ベストアンサー1
読み取りリポジトリを分離し、できればFinderまたはReaderに名前を変更することをお勧めします。リポジトリは読み取り専用データのクエリではなくドメイン使用を目的としています。この記事そしてこれFinder の分離された形式のリポジトリの使用方法を説明します。
読み取りモデルと書き込みモデルのアーキテクチャを分離することもお勧めします。CQRSそしてそこには
このアーキテクチャにより、データ ストレージやイベント ソースの使用に関しても、読み取りモデルと書き込みモデルを分離できます。
中間的な解決策としては、リポジトリとファインダーを分離するだけで、データベースを分離する複雑さなしに、いくつかのCQRS概念を活用できます。こちらをお読みください。役職
このタイプのソリューションのサンプル(同じデータベースを使用するが、ファインダーをリポジトリから分離する)については、以下を確認してください。このサンプル