org.hibernate.exception.DataException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:77)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at dao.ChequeHibernateDAO.remover(ChequeHibernateDAO.java:43)
at dao.ChequeHibernateDAO.removeCheques(ChequeHibernateDAO.java:81)
at gui.AbasCadastro$Eventos.actionPerformed(AbasCadastro.java:172)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.sql.BatchUpdateException: Data truncation: Column was set to data type implicit default; NULL supplied for NOT NULL column 'cliente_codigo' at row 1
at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:665)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
faz uma hora q estou tetnando descobrir e nao axo o problema, alguem sabe oq eh?
Verifique o relacionamento que cheque tem, provavelmente você esta tentando apagar um objeto que esta amarrado com outro, verifique as propriedades do mapeamento de cheque ou popule cheque totalmente, antes de tentar apagar.
Ou pode ser que esta finalizando a session antes de apagar os demais.
ele nao esta amarrado a nenhum outro objeto, ele faz referencia ao objeto Servicos e nao o contrario, isso de alguma forma causa esse certo tipo de problema? se sim como posso contorna-lo? retirando as ligacoes antes de apagar?
Se cheque não tem atributo nenhum que ligue a serviço, não ha problema algum. Tente deixar a session aberta e teste. provavelmente deve ser ela que esta sendo fechada antes de concluir a transação.
Me responde uma coisa, só esta dando erro na exclusão? nos outros metodos cruds esta funcionando?
Poste os seus dois beas, cheque e serviço, pra poder facilitar as coisas.
ok Hammer no seu mapeamento de cheque você mapeou @ManyToOne(cascade = CascadeType.ALL) com relação a serviço, tudo certo até ai, qualquer crud vai ser feito em casacata, mas verifique se na hora que você esta consultando cheque se ele esta trazendo o objeto servico, pois quando mandar excluir ele tentara apagar serviço também.
Olhe no seu mapeamento de cheques, no objeto referente a serviço esta mapeado para fazer tudo em cascata, ou seja consulta, update, delete. @ManyToOne(cascade = CascadeType.ALL).
obg pela ajuda q vc esta me dando, mas sou meio novato em java, quals eria esse tipo q na hora de remover removese so o cheque e deixasse o servico q eles esta ligado intacto?
Hammer acredito que não ocorra problemas, mas depende da forma que esta tratando o banco.
Não gerando inconsistencias, você pode mapear do jeito que quiser.