Как правильно проектировать Repository в DDD?

Senior
296 просмотров
AFK Offer AI

Repository — интерфейс для работы с агрегатами, часть домена. Определяется в domain пакете с терминами домена: findActiveOrdersByCustomerId, не findByCustomerIdAndStatusAndDeletedFalse. Реализация — в infrastructure пакете через Spring Data JPA. Репозиторий для одного агрегата: OrderRepository только для Order aggregate, не для OrderItem напрямую. Возвращает агрегаты, не ORM entities (или агрегаты = ORM entities если нет rich domain model). Метод save() принимает весь агрегат.

Следующий вопрос

Что такое Bounded Context и как определить его границы?