[DDD START] 4장 리포지터리와 모델구현(JPA 중심) - 애그리거트

애그리거트는 개념적으로 하나여야 한다

하지만 루트 엔티티를 로딩하는 시점에 애그리거트에 속한 객체를 모두 로딩해야 하는 것은 아니다

표현 영역에서 애그리거트의 상태 정보를 보여줄 때 정보가 필요하다?

상태를 변경하는 기능을 수행할 때 애그리거트 상태가 완전해야 한다?

@Transactional
public void removeOptions(ProductId id, int optIdxToBeDeleted) {
    // Product를 로딩. 컬렉션은 지연 로딩으로 설정했다면, Option은 로딩하지 않음
    Product product = productRepository.findById(id);
    // 트랜잭션 범위이므로 지연 로딩으로 설정한 연관 로딩 가능
    product.romoveOption(optIdxToBeDeleted);
}

애그리거트의 영속성 전파

Reference