Domain-Driven Design: Tackling Complexity in the Heart of Software の次の定義に基づいて、
集約とは: データ変更の目的で 1 つの単位として扱われる、関連付けられたオブジェクトのクラスター。外部参照は、ルートとして指定された AGGREGATE の 1 つのメンバーに制限されます。AGGREGATE の境界内では、一連の整合性ルールが適用されます。
Aggregate ルートがリポジトリへの参照を保持する必要はないと思います。Aggregate ルートは、そのエンティティと集計への参照を保持する必要がある唯一のルートであるため、非公開にする必要があります。
私のリポジトリはどのようにしてこのプライベート データを保持し、復元できますか?
編集:
古典的な Order、OrderLines の例を見てみましょう。
オーダーは集約ルートです。
その線はエンティティです。
Aggregate ルート (注文) は、そのエンティティ (注文明細) への参照を保持できる唯一のオブジェクトであるため、リポジトリから注文明細を保持する方法がわかりません。