Para facilitar o entendimento, imagina que não tem construtor, então para setar os objetos manualmente seria algo como:
Pedido p1 = new Pedido();
ItemPedido item1 = new ItemPedido("Celular", 4, new BigDecimal("2400.00")); //4 celulares com preço unitario de R$2.400,00
ItemPedido item2 = new ItemPedido("computador", 2, new BigDecimal("6500.00")); //2 computadores com preço unitario de R$6.500,00
Como fazer para relacionar esses objetos? A princípio seria isso:
p1.getItens().add(item1);
p1.getItens().add(item2);
Dessa forma, o pedido p1
tem na lista de itens dele os dois itens. Porém, como o relacionamento é bidirecional, precisa setar também nos objetos itemPedido
quem é o pedido deles:
item1.setPedido(p1);
item2.setPedido(p1);
Sem isso, o pedido teria a lista contendo os 2 itens, mas cada item não estaria relacionado com nenhum pedido (estaria null).
Ou seja, o código correto e completo seria assim:
// cria um objeto pedido sem nenhum item:
Pedido p1 = new Pedido();
// Cria um item, porem sem estar relacionado com nenhum pedido:
ItemPedido item1 = new ItemPedido("Celular", 4, new BigDecimal("2400.00"));
//indica para o item1 que ele pertece ao pedido p1:
item1.setPedido(p1);
//indica para o pedido p1 que a lista dele agora tem 1 item adicionado:
p1.getItens().add(item1);
// Cria outro item, porem sem estar relacionado com nenhum pedido:
ItemPedido item2 = new ItemPedido("computador", 2, new BigDecimal("6500.00"));
//indica para o item2 que ele pertece ao pedido p1:
item2.setPedido(p1);
//indica para o pedido p1 que a lista dele agora tem mais 1 item:
p1.getItens().add(item2);
E para garantir que tudo foi relacionado corretamente, você pode imprimir no console:
System.out.println(p1.getItens().size()); //deve imprimir 2 itens
System.out.println(item1.getPedido()); //deve imprimir o pedido p1
System.out.println(item2.getPedido()); //deve imprimir o pedido p1
Bons estudos!