Erro no Hibernate: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update

Bom dia Pessoal,

Estou com problemas no Hibernate e preciso da ajuda de vocês. Vejam parte da mensagem abaixo:

org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:82) Hibernate: /* insert alphalabprototipo.src.Cliente */ insert into ALPHALAB.Cliente (endpais, endcep, endestado, endcidade, endbairro, endlogradouro, email, datacadastro, telefonefax, telefonefixo, datafundacao, ie, cnpj, nomefantasia, razaosocial, idcliente) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:70) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:181) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
Alguém pode me ajudar?

Abraços!

Verifique as configurações, parece que não está encontrando o driver do seu banco, você deve ter indicado caminho errado, ou pode ser algum outro erro de configuração, talvez você também não tenha dado start no seu banco!

Está encontrando o driver, está conectando ao banco de dados e consequentemente o banco está startado.

Veja classe abaixo:

public class ClienteDAO {    
    public ClienteDAO(){        
    }    
    public boolean incluirCliente(Cliente cliente){        
        Session sessao = HibernateUtility.getSession(); //Abrindo uma sessão
        //Session sessao = HibernateSessionFactory.getSession();
        Transaction transacao = sessao.beginTransaction(); //Iniciando uma transação        
        try{                        
            sessao.save(cliente); //Transformando um objeto transiente em um objeto persistente no bd.
            transacao.commit(); //Finalizando a transação
            sessao.close(); //fechando a sessão.	
            return true;
        } catch (HibernateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
//                transacao.rollback(); //Cancela operação no BD
//                sessao.close(); //Fecha sessão.
                return false;
        }        
    }

}

A mensagem de erro aparece na linha onde tem o transacao.commit(); //Finalizando a transação.

Acredito que possa ser algum problema de configuração, mas o que?

Olhe a classe abaixo:public class HibernateUtility { private static SessionFactory factory; static { try { factory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory(); } catch (Exception e) { e.printStackTrace(); factory = null; } } public static Session getSession() { return factory.openSession(); } }
Observe o hbm de minha classe:<?xml version="1.0" encoding="UTF-8"?> <!-- Hibernate XML Mapping File --> <!-- Author: Leandro --> <!-- Modified: sábado, 8 de março de 2008 01:51:19 --> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping auto-import="true" package="alphalabprototipo.src" schema="ALPHALAB"> <class name="Cliente" mutable="true" dynamic-update="false" dynamic-insert="false" select-before-update="false" lazy="true" abstract="false"> <id name="idcliente"> <column name="idcliente" sql-type="INT4" not-null="true" length="4"/> </id> <property name="endpais" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="endpais" sql-type="VARCHAR(254)" length="254"/> </property> <property name="endcep" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="endcep" sql-type="VARCHAR(254)" length="254"/> </property> <property name="endestado" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="endestado" sql-type="VARCHAR(254)" length="254"/> </property> <property name="endcidade" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="endcidade" sql-type="VARCHAR(254)" length="254"/> </property> <property name="endbairro" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="endbairro" sql-type="VARCHAR(254)" length="254"/> </property> <property name="endlogradouro" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="endlogradouro" sql-type="VARCHAR(254)" length="254"/> </property> <property name="email" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="email" sql-type="VARCHAR(254)" length="254"/> </property> <property name="datacadastro" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="datacadastro" sql-type="DATE" not-null="true"/> </property> <property name="telefonefax" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="telefonefax" sql-type="VARCHAR(254)" length="254"/> </property> <property name="telefonefixo" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="telefonefixo" sql-type="VARCHAR(254)" not-null="true" length="254"/> </property> <property name="datafundacao" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="datafundacao" sql-type="DATE"/> </property> <property name="ie" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="ie" sql-type="VARCHAR(254)" length="254"/> </property> <property name="cnpj" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="cnpj" sql-type="VARCHAR(254)" not-null="true" length="254"/> </property> <property name="nomefantasia" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="nomefantasia" sql-type="VARCHAR(254)" not-null="true" length="254"/> </property> <property name="razaosocial" insert="true" update="true" lazy="false" optimistic-lock="true"> <column name="razaosocial" sql-type="VARCHAR(254)" not-null="true" length="254"/> </property> </class> </hibernate-mapping>
Eu estou aprendendo a trabalhar com Hibernate agora. Estou estudando e pelo que já vi até agora, não consegui corrigir o problema não. Veja abaixo, toda a mensagem de erro que ocorre:

Hibernate: /* insert alphalabprototipo.src.Cliente */ insert into ALPHALAB.Cliente (endpais, endcep, endestado, endcidade, endbairro, endlogradouro, email, datacadastro, telefonefax, telefonefixo, datafundacao, ie, cnpj, nomefantasia, razaosocial, idcliente) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:82) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:70) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:181) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86) at alphalabprototipo.DAO.ClienteDAO.incluirCliente(ClienteDAO.java:36) at alphalabprototipo.view.formCadCliente.cadastrarCliente(formCadCliente.java:495) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662) at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698) 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:6038) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5803) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) at java.awt.Window.dispatchEventImpl(Window.java:2429) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) Caused by: java.sql.BatchUpdateException: Entrada em lote 0 /* insert alphalabprototipo.src.Cliente */ insert into ALPHALAB.Cliente (endpais, endcep, endestado, endcidade, endbairro, endlogradouro, email, datacadastro, telefonefax, telefonefixo, datafundacao, ie, cnpj, nomefantasia, razaosocial, idcliente) values (BRASIL, 74655190, GO, GOIÂNIA, CRIMEIA LESTE, RUA CEL. VICENTE SANCHES, leandro_os@yahoo.com.br, 2008-03-09 01:29:03.843000 -03:00:00, 32031963, 92096069, 2008-03-09 01:29:03.843000 -03:00:00, ISENTO, 33638032000176, NOME FANTASIA, RAZAO SOCIAL, 0) foi abortada. Chame getNextException para ver a causa. at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2534) at org.postgresql.core.v3.QueryExecutorImpl$1.handleError(QueryExecutorImpl.java:404) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1328) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:352) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2596) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:57) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:174) ... 41 more

Alguém pode me ajudar?

Abraços. Obrigado.