ManyToMany

4 respostas
Izahhbelinha

Bom… minha monografia empacou em uma parte sobre ManyToMany. Possuo um pedido que contem muitos produtos, e meus professores não deram muitos exemplos sobre isso.
Mas um professor me sugeriu que eu persistisse o Pedido e colocasse uma anotação cascade.ALL, falando que quando eu persistir o Pedido já irá gravar todos os produtos, porém ele não me passou nada para que eu desse uma olhada como seria feito.
Preciso persistir o cliente e a JTable com todos os produtos. (obs: as anotações ja estão feitas e o itemPedido também esta pronto)
Alguém poderia me dizer que código usar para fazer do jeito que meu professor sugeriu ou de outra forma?

Agradeço desde já
:smiley:

4 Respostas

vinihds

como q voce fez o mapeamento ?

T

bom dia.

se for com annotations vc usa:

@OneToMany(mappedBy="cabecapedido", fetch = FetchType.LAZY)
@Cascade(CascadeType.ALL)
private Collection<ItemPedido> item;

quando vc persistir a “cabeça do pedido” os itens tb serão persistidos.

tem esse material sobre annotations que pode te ajudar:


http://www.christophersiqueira.com.br/wp-content/uploads/2007/07/hibernate-anotacoes.pdf

até mais.

Izahhbelinha

Os mapeamentos que foram citados eu ja fiz nas tabelas. Mas eu queria saber como vai ser persistido no ActionPerfomed. É f**** nao tenho nenhum exemplo pra basear e nenhum colega meu sabe mecher com isso.
mas ja agradeço a ajuda.

Izahhbelinha

Esse é um trabalho q foi feito, mas isso é dentro do GenericDAO.
Daria pra eu fazer assim, e chamando o método na hora do ActionPerfomed?

public boolean registrarPedido(Pedido p) { try { em.getTransaction().begin(); p.setCodcliente(em.merge(p.getCodcliente())); for (ItemPedido ip: p.getItemPedidoCollection()){ ip.setProduto(em.merge(ip.getProduto())); ip.setPedido(p); ip.setItemPedidoPK(new ItemPedidoPK(p.getCodigo(),ip.getProduto().getCodigo())); } em.persist(p); em.getTransaction().commit(); return true; } catch (Exception ex) { ex.printStackTrace(); em.getTransaction().rollback(); return false; } }

Criado 22 de setembro de 2008
Ultima resposta 23 de set. de 2008
Respostas 4
Participantes 3