Mapeando classe de associação, pt2

Na classe Order nós podemos ter um getProducts e na classe Product um getOrders. Isso é util em um cenário em que gostariamos de ver, quais produtos estão em um pedido, por exemplo, ou vice-versa. Veja:

Na classe Order:

    public Set<OrderItem> getItems() {
        return items;
    }
    public List<Product> getProducts() {
        return items.stream().map(OrderItem::getProduct).toList();
    }   

Aqui, nós pegamos o Set de Items do tipo OrderItem, e através do Map, transformamos eles em um Product.

Na classe Product:

    public Set<OrderItem> getItems() {
        return items;
    }

    public List<Order> orders() {
        return items.stream().map(OrderItem::getOrder).toList();
    }

Atualizado