1

В принципе, у меня есть объект , представляющий уведомление пользователя в моем приложении.DDD/Хорошая практика для сохранения многих объектов сразу через репозиторий

Я ожидаю, что случай использования, когда пользователь может отметить как «прочитанное» много уведомлений сразу.

В настоящее время я собираю коллекции уведомлений, переплетаю их, чтобы указать notificationRepository.save(notification) для каждого. (save или даже add, если мы строго придерживаемся сути шаблона репозитория для абстрактного представления базы данных).

Под обложкой реализация репозитория связывает удаленную базу данных .

Проблема в том, что это очень дорого обойтись на моем сервере базы данных (с удаленного компьютера).
Действительно, если пользователь ожидает флаг 10 уведомлений, будет 10 обзорных экскурсии ...

Есть ли способ партии тех экономию, сохраняя при этом DDD правил технических шаблонов?
Например, должен ли я определить метод addAll (или saveAll) в моем репозитории?

+0

В моем репозитории имеется метод очистки, который записывает все ожидающие изменения в базу данных. Нет необходимости в методе сохранения. – Cerad

+1

Читайте об элементе работы. –

ответ

3

Обычно, если у вас есть ORM или какой-либо трекер изменений, вам не нужны методы save() в ваших репозиториях, так как модификации будут очищены на уровне приложения, когда будет выполняться UnitOfWork.

Если 10 уведомлений были отмечены, возможно, ORM переведет это в 10 операторов обновления, но это никогда не было проблемой для меня. Возможно, вы можете оптимизировать это, чтобы делать массовые обновления, хотя, если это действительно проблема.

Смежные вопросы