Mapear Enum Hibernate Resolvido

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.

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)

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. }

Resolvido