Problema na gravação de dados do Tipo DATA no SQLServer 2005

2 respostas
L

Olá amigos,

Estou com um problema, pois tenho uma aplicação Java que grava dados num banco SQL Server 2005.
Quando faço essa gravação retorna o seguinte erro:

Caused by: org.hibernate.exception.SQLGrammarException: A conversão de um tipo de dados char em um tipo de dados datetime resultou em um valor datetime fora do intervalo.

Abaixo listarei todas as alternativas feitas sem sucesso:

1- O campo data no JPA era do tipo java.util.Date - Mudei para java.sql.Date, mudei para java.sql.timestamp, mudei para java.util.Calendar, coloquei as anotações Temporal(TemporalType.DATE).
2 - Mudei a versão do JDTS da versão 1.2.7 para a versão 1.3.1.
3 - Mudei a versão do JDTS da versão 1.2.7 para slf4j-api-1.4.2 (Driver JDBC oficial da Microsoft).
4 - Tentei fazer todas as conversão possíveis e impossíveis de data dentro do Java e sem sucesso.

No SQLServer o tipo do campo é datetime, o pattern de gravação está (yyyy-MM-dddd HH:mm.ss.zzz).

Alguém tem alguma idéia? Já busquei em outros fóruns e tutoriais sem sucesso.

Desde já Obrigado!

2 Respostas

drsmachado

O problema está no atributo TemporalType.
TemporalType.DATE = 'yyyy-MM-dd’
TemporalType.TIME = 'HH:mm:ss’
TemporalType.TIMESTAMP = 'yyyy-MM-dd HH:mm:ss’
Ou seja, você deve manter o atributo como java.util.Date ou java.util.Calendar e o TemporalType como TIMESTAMP.

L

Então eu já havia realizado esse teste:

@Column(name = "DataInic")
@Temporal(TemporalType.TIMESTAMP)
private Calendar dataInicial;

Entretanto ocorre o mesmo erro.

Estou tentando ver se é algo relacionado ao default language do banco e da minha jvm, entratanto as duas estão configuradas pra o Brasil. :confused:

Criado 28 de junho de 2013
Ultima resposta 28 de jun. de 2013
Respostas 2
Participantes 2