Erro no tipo da coluna do hibernate [RESOLVIDO]

6 respostas
J

Fala pessoal,
Estava desenvolvendo a minha aplicação usando o jboss seam gen e precisei alterar o tipo de uma coluna de uma tabela do meu banco de dados.

Eu estava usando um tipo TIMEZ (por erro meu, na verdade queria ter usado VARCHAR) e quando detectei meu erro, alterei a coluna para o tipo VARCHAR.

Após fazer isso, fui na classe da entidade e alterei para String o tipo do atributo e os retornos e parametros das funcoes que utilizavam este atributo.

Depois disso, não consigo mais levantar meu sistema, sempre apresenta o seguinte erro:

javax.persistence.PersistenceException: [PersistenceUnit: seguTrab] Unable to build EntityManagerFactory
.
.
.
Caused by: org.hibernate.HibernateException: Wrong column type in public.estado for column desc_estado. Found: timetz, expected: varchar(255)
	at org.hibernate.mapping.Table.validateColumns(Table.java:284)
.
.
DEPLOYMENTS IN ERROR:
  Deployment "persistence.unit:unitName=#seguTrab" is in error due to the following reason(s): org.hibernate.HibernateException: Wrong column type in public.estado for column desc_estado. Found: timetz, expected: varchar(255)

Bom, a minha entidade está assim:

@Entity
@Table(name = "estado")
public class Estado implements java.io.Serializable {
	
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 6L;
.
.
	@Column(name = "desc_estado")
	public String getDescEstado() {
		return this.descEstado;
	}

	public void setDescEstado(String descEstado) {
		this.descEstado = descEstado;
	}
.
.

Já reiniciei o jboss e nada, não sei o que fazer para que o hibernate reconheça essa mudança nesta coluna.

Obrigado a todos.

6 Respostas

romarcio

Pelo exceção parece que ainda tem um tipo TIMEZ na aplicação. Procura bem para ver se alterou em todos os lugares.

J

É, eu pensei a mesma coisa tb, já procurei nos códigos pelo nome desse campo e pelo tipo e não tem nada para alterar.

Na ultima tentativa, eu EXCLUÍ a tabela do banco de dados, para testar, e o hibernate CONTINUA reclamando do tipo do campo, ou seja, ele não está conseguindo visualizar o banco de dados atual. Em algum momento ele pegou isso em cache e não consegue enxergar as modificações que estou fazendo no banco de dados.

Vlw pessoal

E

kra vai no eclipse, clica em search>file

dpois no campo ‘Containing text’ digita ‘time’ e aperta ‘Search’, ele vai varrer todo o codigo de qualquer arquivo seu a procura de da palavra ‘time’,… eu sei q vc já olhou + é sempre bom dar uma verificada…

J

O problema não seria de cache? Já que eu até EXCLUÍ a tabela do bd, e continua dando o mesmo erro. Ou seja, o hibernate nem detectou que eu excluí a tabela.

romarcio

Acho muito tempo para ele guardar o cache.
Mas é só questão de reiniciar a máquina que o cache vai ser limpo de vez, faz isso.

J

Problema resolvido, eu simplesmente estava alterando o ip do banco no arquivo “*-ds.xml” de dentro do projeto, e não o que estava na pasta ‘deploy’ do jboss, por isso as alterações que eu estava fazendo no banco de dados local não surtiam efeito no hibernate.

Por isso eu achava que o hibernate estava com cache.

Obrigado pessoal e desculpa aí pelo furo.

PS: Sono e horas direto de trabalho fazem isso com as pessoas mesmo.

Abraços.

Criado 21 de março de 2011
Ultima resposta 22 de mar. de 2011
Respostas 6
Participantes 3