Olá galera do GUJ!
Estou com um problema que já está pra me deixar doido de vez. Utilizo o NetBeans 7.1.1 e o EclipseLink em meu projeto.
O erro se dá na hora em que vou salvar um orçamento, segue o erro:
pojos.Orcamento[ idorcamento=null ]
03/01/2013 13:36:00 controller.OrcamentoController salvarOrcamento
GRAVE: null
java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: pojos.SalasOrcamento[ idsalasOrcamento=null ].
at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.discoverUnregisteredNewObjects(RepeatableWriteUnitOfWork.java:302)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.calculateChanges(UnitOfWorkImpl.java:695)
at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.writeChanges(RepeatableWriteUnitOfWork.java:431)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:780)
at daos.OrcamentoDAO.salvar(OrcamentoDAO.java:103)
at controller.OrcamentoController.salvarOrcamento(OrcamentoController.java:397)
at view.OrcamentoJIForm.buttonSalvarActionPerformed(OrcamentoJIForm.java:948)
at view.OrcamentoJIForm.access$1300(OrcamentoJIForm.java:27)
at view.OrcamentoJIForm$14.actionPerformed(OrcamentoJIForm.java:869)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Agora, o porquê desse erro me enlouquecer. Se eu abrir a Janela de Orçamento e salvar, dá certo. Salva tudo corretamente, até os relacionamentos do mesmo. Porém, se eu abrir a Janela de Contratos e através dela eu abrir a Janela de Orçamento e tentar salvar, ocorre esse erro.
A diferença do processo é que, ao abrir a Janela de Orçamento pela de Contratos, a janela irá abrir já preenchida com os todos os dados e com um dos relacionamentos já salvo.
A linha do erro na minha DAO é onde eu chamo o método:em.flush();
Alguém saberia me dá um norte do que fazer? Já tentei n-coisas e não vejo sentido em ele dá um erro de Cascade, já que as anotações estão em seus lugares e se eu tentar abrindo a janela diretamente, dá tudo certo.
Desde já, muito obrigado!

