Mapear Enum Hibernate Resolvido

3 respostas
tiago.vt

Pessoal estou tentando mapea um enum so que esta dando erro

public enum TipoUsuario {
	ALUNO, COORDENADOR_CURSO, COORDENADOR_ESTAGIO, EMPRESA, ORIENTADOR
}

a classe que usa

@Enumerated(EnumType.STRING)
	private TipoUsuario tipoUsuario;

Erro

org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
	at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114)
	at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
	at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2688)
	at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365)
	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
	at br.unifil.util.HibernateListener.contextInitialized(HibernateListener.java:53)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
	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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.sql.BatchUpdateException: Unknown column 'tipoUsuario' in 'field list'
	at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1666)
	at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1082)
	at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
	... 30 more
15/07/2010 01:32:00 org.a

Ja fiz varias pesquisas e todos os exemplos eu segui, e o erro continua.

3 Respostas

partenon

Soh pra confirmar, vc tem um campo chamado “tipoUsuario” na sua tabela, certo? O erro ao eh do Hibernate, mas veio do banco de dados:

Se ainda tiver o problema, tente configurar o Hibernate para imprimir as SQLs mandadas para o banco de dados (hibernate.show_sql=true)

maxdavis

faz teu enum desse jeito

  1. public enum TipoUsuario
  2. ALUNO("ALUNO"), COORDENADOR_CURSO("COORDENADOR CURSO"); //outros campos
    
  3. private String descricao;
    
  4. private tipoUsuario(String descricao) {
    
  5. this.descricao= descricao;
    
  6. }
    
  7. public String toString() {
    
  8. return this.descricao;
    
  9. }
    
  10. }
tiago.vt

Resolvido

Criado 15 de julho de 2010
Ultima resposta 15 de jul. de 2010
Respostas 3
Participantes 3