「別の集計の一部である集計」は、「集計が別の集計の参照を保持している」と考えることができます。
例えば
public class Order {
private Invoice invoice;
}
<class name="Order" table="T_ORDER">
<one-to-one name="invoice" column="INVOICE_ID" />
</class>
このコンテキストで Order と Invoice の両方が集計である場合、OrderRepository と InvoiceRepository があります。次を使用して Order を取得できます。
orderRepository.findBy(orderId)
そして、あなたは使用して請求書を取得することができます
invoiceRepository.findBy(invoiceId)
また
Order order = orderRepository.findBy(orderId);
Invoice invoice = order.getInvoice();
また、集約の設計方法に関する有名な記事 ( http://dddcommunity.org/library/vernon_2011/ ) があり、アイデンティティ参照を使用してこの関係を実現することを提案しています。
public Class Order {
private InvoiceId invoiceId;
}
<class name="Order" table="T_ORDER">
<component name="invoiceId">
<property name="value" column="INVOICE_ID" />
</component>
</class>
を使用して注文を取得できます
orderRepository.findBy(orderId)
そして、あなたは使用して請求書を取得することができます
invoiceRepository.findBy(invoiceId)
また
Order order = orderRepository.findBy(orderId);
Invoice invoice = invoiceRepository.findBy(order.getInvoiceId());