Erro ao salvar

0 respostas
J

Pessoal

No meu form orçamento, insiro os dados todos, correto, quando clico em salvar da erro, quando tiro as declarações ENTITY, e descomento o ODK, não da erro mas insere somente uma linha na detailtable. Alguém me ajude por favor ??

[color=red]procedimento novo registro na detailtable[/color]
private void newDetailButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
        entityManager.getTransaction().rollback();
        entityManager.getTransaction().begin();
        
        int index = masterTable.getSelectedRow();
        br.com.gyncom.bean.OrcCab O = list.get(masterTable.convertRowIndexToModel(index));
        Collection<br.com.gyncom.bean.OrcDet> os = O.getOrcDetCollection();
        if (os == null) {
            os = new LinkedList<br.com.gyncom.bean.OrcDet>();
            O.setOrcDetCollection(os);
        }
        br.com.gyncom.bean.OrcDet o = new br.com.gyncom.bean.OrcDet();      
        OrcDetPK odk = new OrcDetPK();
        
        //odk.setCodOrcCab(O.getCodOrcCab());
        o.setOrcDetPK(odk); 
     
        ImportaProdOrc ip = new ImportaProdOrc(null, true);
        ip.recebeOb(o); 
        ip.setVisible(true);
        
        
        o.setOrcCab(O);
        
        produtoQuery = entityManager.createNamedQuery("Produto.findByCodProduto");
        produtoQuery.setParameter("codProduto", o.getOrcDetPK().getCodProduto());
        List<Produto> data = produtoQuery.getResultList();
        o.setDescricaoProduto(data.get(0).getDescricaoProduto());
        
        
        entityManager.persist(o);
        
        
        os.add(o);
        
       //ImportaCliente ic = new ImportaCliente(null, true);
        //ic.recebeObjeto(O);  
       // ic.setVisible(true);
        
        
        masterTable.clearSelection();
        masterTable.setRowSelectionInterval(index, index);
        int row = os.size()-1;
        detailTable.setRowSelectionInterval(row, row);
        detailTable.scrollRectToVisible(detailTable.getCellRect(row, 0, true));
    }

[color=darkred]abaixo o procedimento SALVAR, quando altero o ENTITYMANAGER para ROOLBACK, não da erro, mas não salva na tabela[/color]

private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
        try {
            entityManager.getTransaction().commit();
            entityManager.getTransaction().begin();
        } catch (RollbackException rex) {
            rex.printStackTrace();
            entityManager.getTransaction().begin();
            List<br.com.gyncom.bean.OrcCab> merged = new ArrayList<br.com.gyncom.bean.OrcCab>(list.size());
            for (br.com.gyncom.bean.OrcCab O : list) {
                merged.add(entityManager.merge(O));
            }
            list.clear();
            list.addAll(merged);
        }
    }
abai[color=red]xo o erro quando tento inserir mais de uma linha da detailtable[/color]
[TopLink Info]: 2009.08.10 10:46:34.546--ServerSession(11155366)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
[TopLink Info]: 2009.08.10 10:46:35.125--ServerSession(11155366)--file:/C:/SisCom_Java/projetos/netbeans/GynCom/build/classes/-siscomjavaPU login successful
Exception occurred during event dispatching:
java.lang.ArrayIndexOutOfBoundsException: -1
        at java.util.ArrayList.get(ArrayList.java:324)
        at org.jdesktop.swingbinding.impl.ListBindingManager$ColumnDescriptionManager.validateBinding(ListBindingManager.java:191)
        at org.jdesktop.swingbinding.impl.ListBindingManager.valueAt(ListBindingManager.java:99)
        at org.jdesktop.swingbinding.JTableBinding$BindingTableModel.getValueAt(JTableBinding.java:713)

erro quando tento salvar pelo menos uma linha.

[TopLink Info]: 2009.08.10 10:47:55.468--ServerSession(15842168)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
[TopLink Info]: 2009.08.10 10:47:56.046--ServerSession(15842168)--file:/C:/SisCom_Java/projetos/netbeans/GynCom/build/classes/-siscomjavaPU login successful
[TopLink Warning]: 2009.08.10 10:48:12.000--UnitOfWork(3275569)--java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: br.com.gyncom.bean.OrcCab[codOrcCab=null].
javax.persistence.RollbackException: java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: br.com.gyncom.bean.OrcCab[codOrcCab=null].
        at oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.commit(EntityTransactionImpl.java:120)
        at oracle.toplink.essentials.internal.ejb.cmp3.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:60)
        at br.com.gyncom.view.MovOrcVenda.saveButtonActionPerformed(MovOrcVenda.java:493)
        at br.com.gyncom.view.MovOrcVenda.access$1900(MovOrcVenda.java:21)
        at br.com.gyncom.view.MovOrcVenda$FormListener.actionPerformed(MovOrcVenda.java:371)
Criado 10 de agosto de 2009
Respostas 0
Participantes 1