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.
[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.
[/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)
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