Estou iniciando o uso do hibernate e estou com o seguinte erro que não consigo resolver:
Exception in thread “main” org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at teste.Insere.main(Insere.java:22)
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into Pessoa (nome, email, senha, idPessoa) values (Marcelo Oliveira, marcelooliveiramail@yahoo.com.br, qsz157, 14) was aborted. Call getNextException to see the cause.
at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2497)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1298)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:347)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2559)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
… 8 more
Estou utilizando Postgre, NetBeans e Hibernate 3.1.
O arquivos são os seguintes:
POJO:
package teste;
public class Pessoa {
private int id;
private String nome;
private String email;
private String senha;
public Pessoa() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
Mapeamento:
<?xml version="1.0"?> teste_idpessoa_seqConfiguração:
<?xml version="1.0" encoding="utf-8"?> org.postgresql.Driver jdbc:postgresql://localhost:5432/Hibernate org.hibernate.dialect.PostgreSQLDialect postgres postgres true 10 <mapping resource="teste/Pessoa.hbm.xml"/>
</session-factory>
Main:
package teste;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class Insere {
public static void main(String[] args) {
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session sessao = sf.openSession();
Transaction tx = sessao.beginTransaction();
Pessoa pessoa = new Pessoa();
pessoa.setNome("Marcelo Oliveira");
pessoa.setEmail("marcelooliveiramail@yahoo.com.br");
pessoa.setSenha("qsz157");
sessao.save(pessoa);
tx.commit();
sessao.close();
}
}