Erro no Hibernate

7 respostas
marcelo_mococa

Galera olha o erro que ta danu no hibernate, na hora em que eu mando gravar no banco.

exception

javax.servlet.ServletException: could not insert: [br.com.marcelo.modelo.Cliente]
	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

org.hibernate.exception.GenericJDBCException: could not insert: [br.com.marcelo.modelo.Cliente]
	org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
	org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
	org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1786)
	org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2187)
	org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:34)
	org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
	org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:238)
	org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:158)
	org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:104)
	org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)
	org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
	org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)
	org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
	org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)
	org.hibernate.impl.SessionImpl.save(SessionImpl.java:445)
	org.hibernate.impl.SessionImpl.save(SessionImpl.java:440)
	br.com.marcelo.hibernate.DAO.adiciona(DAO.java:22)
	br.com.marcelo.action.CadastrarClienteAction.execute(CadastrarClienteAction.java:22)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

O que pode ser?

7 Respostas

brunocosta

Muito provavelmente vc usou o nome errado de alguma coluna no mapeamento dessa classe, ou alguma coluna que não existe, ou alguma outra coisa… poste o mapping pra ver se a gente pode ter mais detalhes… :slight_smile:

marcelo_mococa
package br.com.marcelo.modelo;

import javax.persistence.Entity;
import javax.persistence.GeneratorType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "Cliente")
public class Cliente {

	private Long id;
	private String nome;
	private String email;
	private String cidade;
	
	public String getCidade() {
		return cidade;
	}
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	@Id (generate = GeneratorType.AUTO)
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}

	
}

Mandei o hibernate criar esta tabela, portanto o banco de dados esta deste jeito. Estou preenchendo um objeto desta classe e passando para o metodo session.save.
Dai dá este erro

jack_ganzha

GenericJDBCException? Qual o banco de dados? Vc setou corretamente o dialeto para ele?

valeuz…

A

Vc deu o commit Marcelo? O meu tava dando esse de genericExecption.
Com o commit funcionou. Vê ai?
Falou,

Alberto

marcelo_mococa

dei o commit e continuou o erro.

to usanu a seguinte configuração do dialeto:

hibernate.dialect org.hibernate.dialect.MySQLDialect
#hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
#hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect
#hibernate.connection.driver_class org.gjt.mm.mysql.Driver
hibernate.connection.driver_class com.mysql.jdbc.Driver
hibernate.connection.url jdbc:mysql://localhost/marcelo
hibernate.connection.username root
hibernate.connection.password xxx
marcelo_mococa

subindo…

marcelo_mococa

resolvido…

baxei uma nova versao do drive do mysql e deu certo

Criado 26 de julho de 2005
Ultima resposta 27 de jul. de 2005
Respostas 7
Participantes 4