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

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

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

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

Как использовать jmap для анализа памяти?