Então... ainda continuo na busca da solução do cadastro do meu sistema.
esse é o trecho que eu tento achar a solução. estou tentando cadastrar o cliente e os itens do produto que estao numa JTable.
antes de mais nada.. as referencias OneToMany e o ItemPedido estão certinhas.
privatevoidcadastrarActionPerformed(java.awt.event.ActionEventevt){try{
Pedidop=newPedido();p.setNumped(newInteger(1)); //isso é um testep.setCodcliente(cliente);for(inti=0; i < mtpd.getLista().size(); i++) {disbeb.modelo.ItemPedidoit=newdisbeb.modelo.ItemPedido();it.setPedido(p);it.setProduto(produto);it.setQuantidade((int)mtpd.getLista().get(i).getQuantidade());it.setValortotal(mtpd.getLista().get(i).getValortotal()); lista.add(it);}
p.setItens(lista);p=(Pedido)GenericDAO.getInstance().persistir(p);if(p!=null){
JOptionPane.showMessageDialog(null,"Pedido Cadastrado");}
else{
JOptionPane.showMessageDialog(null,"Pedido NÃO cadastrado");}
lista.clear();
e o erro que esta dando é assim: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
e aparece muitas vezes essa linha e o sistema nao sai da execução, ai o sistema trava, o netbeans trava....
privatevoidcadastrarActionPerformed(java.awt.event.ActionEventevt){try{Pedidop=newPedido();p.setNumped(newInteger(1));//isso é um teste p.setCodcliente(cliente);for(inti=0;i<mtpd.getLista().size();i++){/*O erro aparentemente esta aqui ao criar instancia de item pedido * tem fazer assim ItemPedido it = new ItemPedido() */disbeb.modelo.ItemPedidoit=newdisbeb.modelo.ItemPedido();it.setPedido(p);it.setProduto(produto);it.setQuantidade((int)mtpd.getLista().get(i).getQuantidade());it.setValortotal(mtpd.getLista().get(i).getValortotal());lista.add(it);}p.setItens(lista);p=(Pedido)GenericDAO.getInstance().persistir(p);if(p!=null){JOptionPane.showMessageDialog(null,"Pedido Cadastrado");}else{JOptionPane.showMessageDialog(null,"Pedido NÃO cadastrado");}lista.clear();
Giulliano
paulofafism eu não concordo com vc…o que tem haver o modo como ela referencia uma classe com OutOfMemory ???
Na verdade seria interessante vc nos dizer primeiro em qual linha acontece isso. Outra coisa q não entendi é essa variavel lista de onde ela vem ???
paulofafism
paulofafism eu não concordo com vc…o que tem haver o modo como ela referencia uma classe com OutOfMemory ???
Na verdade seria interessante vc nos dizer primeiro em qual linha acontece isso. Outra coisa q não entendi é essa variavel lista de onde ela vem ???
Bem acho que esta na maneira como ela instancia os objetos. Pois ja tives problemas parecidos.
Olhando mais atentamente o erro pode esta aqui mesmo, veja este treco de codigo
it.setQuantidade( (int) mtpd.getLista().get(i).getQuantidade()); esta lista esta mesmo estranha
#for(inti=0;i<mtpd.getLista().size();i++){#/*O erro aparentemente esta aqui ao criar instancia de item pedido # * tem fazer assim ItemPedido it = new ItemPedido() # */#disbeb.modelo.ItemPedidoit=newdisbeb.modelo.ItemPedido();#it.setPedido(p);#it.setProduto(produto);#it.setQuantidade((int)mtpd.getLista().get(i).getQuantidade());#it.setValortotal(mtpd.getLista().get(i).getValortotal());#lista.add(it);#}
Como você está incrementando a lista no for e está ao mesmo tempo utilizando o size dela como limite, o Java encontra aí um loop infinito e dá OutOfmemory…
Detalhe, estou deduzindo que sua variável lista seja a mesma referência de objeto do mtpd.getLista()…
paulofafism
Como você está incrementando a lista no for e está ao mesmo tempo utilizando o size dela como limite, o Java encontra aí um loop infinito e dá OutOfmemory…
Detalhe, estou deduzindo que sua variável lista seja a mesma referência de objeto do mtpd.getLista()…
Humm não tinha pensado que a variavel lista se a mesma referência do objeto mtpd.getLista(), bem provável
mas… eu preciso cadastrar todos os produtos que se encontram na Jtable, por isso do
for(inti=0; i < mtpd.getLista().size(); i++) {
mas nao sei como cadastrar os itens dessa tabela, essa foi uma solução que um colega me forneceu. mas tentei adaptar a outro conselho do meu professor. Ai outro professor meu nao mecheu em nada e disse q tava certo, mas nao sabe consertar o erro.