Erro ao salvar

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]

[code]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));
}                      [/code]

[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)