Foamtacao de data no Oracle, usando HIBERNATE

5 respostas
oliveirarenan

Pessoal.

Tenho uma aplicacao usando hibernate.

Preciso fazer exatamente esse select que estou fazendo no oracle, mas dessa vez no hibernate.

select *  from aula where to_char(dt_aula, 'YYYY-MM-DD') = '2007-02-05'

nao sei como eu usaria o to_char no hibernate…
Eu formatei minha data assim: 2007-02-06

E preciso alterar o formato no oracle.

Meu metodo eh o seguinte…mas nao esta dando certo:

public AvaliacaoTO findAvaliacaoByData(Date data) { AvaliacaoTO avaliacao = null; Query q = HibernateUtil.getSession().createQuery(" from AvaliacaoTO as avaliacao where avaliacao.aulas.dataAula = ?"); q.setDate(0, Util.getSqlDate(data)); avaliacao = (AvaliacaoTO) q.uniqueResult(); return avaliacao; }

O Util.getSqlDate transforma o formato em yyyy-mm-dd
No meu HQL preciso representar o q eu faco acima no oracle.

Alguem poderia me ajudar?

Abs’s

:smiley: :smiley: :smiley: :smiley: :smiley: :smiley:

5 Respostas

O

public AvaliacaoTO findAvaliacaoByData(Date data) { AvaliacaoTO avaliacao = null; Query q = HibernateUtil.getSession().createQuery(" from AvaliacaoTO as avaliacao where avaliacao.aulas.dataAula = ?"); q.setDate(0, Util.getSqlDate(data)); avaliacao = (AvaliacaoTO) q.uniqueResult(); return avaliacao; }

findAvalicaoByData (que mistureba de ingles e portugues no nome do metodo :shock: ) está recebendo um Date. Por que você simplesmente não usa ele no setDate?

oliveirarenan

seufagner, não entendi o q disse…poderia exemplificar por favor?

oyama, acho que vc não deve ter entendido a pergunta…releia o enunciado e entenderá. O que vc falou nao tem nada haver…:D:D:D:D:D

ABs´s

:wink:

O

http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Query.html#setDate(int,%20java.util.Date)

setDate da classe Query recebe um int e um Date.
Util.getSqlDate(data) retorna uma String? Vai dar pau…

O que eu falei acima é, ao inves de usar Util.getSqlDate(data), passe o parametro data para o metodo setDate.
Quando voce usa Date, não precisa ficar se preocupando com formatação de data (to_char). A coluna dt_aula não é do tipo DATE?
Além disso não recomendo usar to_char no WHERE de uma query. A consulta pode ficar lenta…

B

Utilize o TRUNC no lugar do TO_CHAR que o Hibernate te retorna uma data formatada em String “DD/MM/YYYY”

Abç

seufagner

Faz o contrário!

Utilizando SimpleDateFormat, redefine teu objeto Date para o formato desejado e depois passa ele como parâmetro. O HQL não tem um método nativo para isso… Já precisei disso e funcionou belezinha.

Criado 7 de fevereiro de 2007
Ultima resposta 7 de fev. de 2007
Respostas 5
Participantes 4