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)