Правильно ли в DDD (с JPA) удалять или обновлять дочерние объекты через совокупный корень?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Правильно ли в DDD (с JPA) удалять или обновлять дочерние объекты через совокупный корень?

Сообщение Anonymous »

Мне интересно, как правильно изменять дочерние объекты через совокупный корень.
Пример объекта корзины (агрегированный корень)

Код: Выделить всё

    public void removeItem(final ProductId productId) {
final CartItem itemToRemove = getItemBy(productId);
items.remove(itemToRemove);
}

private CartItem getItemBy(final ProductId productId) {
return findItemBy(productId)
.orElseThrow(() -> new IllegalArgumentException("cartItem with %s not found".formatted(productId)));
}

private Optional findItemBy(final ProductId productId) {
return items.stream()
.filter(lineItem -> productId.equals(lineItem.productId()))
.findFirst();
}
  • уместно ли идентифицировать и удалять/обновлять подобные дочерние объекты, используя их идентификаторы через совокупный корень?
    Или есть лучший шаблон для обработки таких изменений?
  • Поскольку JPA обычно требует загрузки всей дочерней коллекции (элементов) для выполнения этой операции, я не уверен, подойдет ли этот подход или можно ли его использовать вызывают проблемы с масштабируемостью.
Пожалуйста, дайте мне знать, если я что-то не понимаю.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ough-the-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»