Hibernate não diz a classe com erro: Wrong column type

Estou rodando o sistema com o validate do hibernate.
Ele acha um erro, mas não diz onde.
Tem muitas entidades e todas elas tem algumas datas. E ai complica de saber onde ta o problema.

Tem como mandar o hibernate mostrar em qual tabela/entidade que ele pegou o erro ?

Caused by: org.hibernate.HibernateException: Wrong column type: DT_ALTER, expected: timestamp
at org.hibernate.mapping.Table.validateColumns(Table.java:261)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1083)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:116)
at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:317)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:915)

Já busquei por DT_ALTER e em todas tem a anotação com timestamp

como vc esta fazendo?

cole o código de um deles ai

Eu estava rodando pelo servidor e ai ele não tava mostrando muita coisa.
Criei uma classe Main só pra fazer esse validate e ai ela passou a especificar mais e descobri onde era.

Está assim:

@Temporal(TemporalType.TIMESTAMP)
@Column(name = “DT_ALTER”, length = 7)
private Date dtAlter;

Esse length o hibernate q mapeou com base no banco.
Fui ver e no o campo está como Date e não timestamp.

Agora já não sei oq faço pq tem muitas Datas e todas estão como Date no banco.
Na aplicação está tudo com @Temporal(TemporalType.TIMESTAMP)

Acho q vou parar de usar o validate do hibernate pra não pegar isso.

:cry:

[quote=fdiaz2011]Eu estava rodando pelo servidor e ai ele não tava mostrando muita coisa.
Criei uma classe Main só pra fazer esse validate e ai ela passou a especificar mais e descobri onde era.

Está assim:

@Temporal(TemporalType.TIMESTAMP)
@Column(name = “DT_ALTER”, length = 7)
private Date dtAlter;

Esse length o hibernate q mapeou com base no banco.
Fui ver e no o campo está como Date e não timestamp.

Agora já não sei oq faço pq tem muitas Datas e todas estão como Date no banco.
Na aplicação está tudo com @Temporal(TemporalType.TIMESTAMP)

o import de Date qual é passa ai?
tira esse length
depois na parte da view você vai por
o pattern que quiser

Acho q vou parar de usar o validate do hibernate pra não pegar isso.

:cry:

[/quote]

O import é esse:
import java.util.Date;

[quote=fdiaz2011]O import é esse:
import java.util.Date;

[/quote]

só tirar length que resolve

Resolve não.

A data no banco está Date e na aplicação está
@Temporal(TemporalType.TIMESTAMP)
@Column(name = “DT_ALTER”)
private Date dtAlter;

O validate do hibernate reclama disso.
Quando troco pra @Temporal(TemporalType.DATE), ele não reclama.

Pelo q vi eu tenho q colocar na entidade o TemporalType.DATE e perder a hora, ou não usar o validate do hibernate pra ele não reclamar e me deixar trabalhar.
hehe

Outra opção seria mudar no banco, mas esse pessoal q trabalha com banco é muito inflexivel e qro evitar falar com eles.

[quote=fdiaz2011]Resolve não.

A data no banco está Date e na aplicação está
@Temporal(TemporalType.TIMESTAMP)
@Column(name = “DT_ALTER”)
private Date dtAlter;

O validate do hibernate reclama disso.
Quando troco pra @Temporal(TemporalType.DATE), ele não reclama.

Pelo q vi eu tenho q colocar na entidade o TemporalType.DATE e perder a hora, ou não usar o validate do hibernate pra ele não reclamar e me deixar trabalhar.
hehe

Outra opção seria mudar no banco, mas esse pessoal q trabalha com banco é muito inflexivel e qro evitar falar com eles.[/quote]

Acho que sei qual é o problema vou confirmar e já te digo

que banco que vc esta usando?

teste isso é para resolver
coloque debaixo da @Temporal

@Temporal(TemporalType.TIMESTAMP)
@org.hibernate.annotations.Generated(value=GenerationTime.INSERT)
@Column(name = “DT_ALTER”)
private Date dtAlter;

Exception in thread “main” java.lang.ExceptionInInitializerError
at java.lang.J9VMInternals.initialize(J9VMInternals.java:218)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:161)
at Projeto.main(Projeto.java:7)
Caused by: org.hibernate.HibernateException: Wrong column type: DT_ALTER, expected: timestamp
at org.hibernate.mapping.Table.validateColumns(Table.java:261)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1083)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:116)
at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:317)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:915)

:cry: :cry:

qual é o seu banco?

Desculpa, esqueci de falar.
É o Oracle 10g

[quote=fdiaz2011]Desculpa, esqueci de falar.
É o Oracle 10g[/quote]

entao sendo oracle não precisa daquilo que te passe
deixa como estava antes

o que pode esta acontecendo é o seguinte
a tabela já foi criada como date

delete da tabela e manda criar novamente