Пример объекта корзины (агрегированный корень)
Код: Выделить всё
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