Duvida HQL

10 respostas
C

Gostaria de saber se consigo recuperar a data do banco de dados pelo Hibernate.
Por exemplo em SQL posso fazer

select  current_date

e em HQL como faço isso?

10 Respostas

W

eu não sei em HQL, mais vc pode fazer uma VIEW no banco e recuperar como se fosse uma tabela normal usando o hibernate

Mauricio_Linhares

cbotacin:
Gostaria de saber se consigo recuperar a data do banco de dados pelo Hibernate.
Por exemplo em SQL posso fazer

select  current_date

e em HQL como faço isso?

Pegar a data do sistema Java não resolve o problema não?

AdemirPinto

cbotacin:
Gostaria de saber se consigo recuperar a data do banco de dados pelo Hibernate.
Por exemplo em SQL posso fazer

select  current_date

e em HQL como faço isso?

Olá cbotacin,

tb estava querendo fazer isso e nao consegui, não queria pegar a data do sistema java como o amigo acima falou.

Abraços
Ademir

M

Vc pode tentar executar sem ser por HQL… No hibernate tem a opção de executar query nativa.

maior_abandonado

no hibernate vocÊ ainda pode fazer uma sql query casovocÊ precise…

sei que o hibernate aceita umas funções ai em qualquer banco mas não tenho certeza se tem uma para data e hora corrente…

leoramos

current_date é função, então precisa dos parênteses.
current_date()

Acho eu que sysdate() também funciona… mas só acho.

Abraço!

leoramos

Agora me veio uma dúvida: em que situação você teria resultados diferentes buscando hora do banco e do sistema java? Servidores diferentes devem ter relógio global. Se o problema for localização, aí não tem jeito… mas ainda assim dá certo, alterando-se o timezone.

AdemirPinto

Marcia, bom dia, como que faço para executar uma query nativa?

A minha função é:

//Retorna data e hora do Servidor MySQL
public static Date getDataHoraHoje() throws Exception {
	Date dt = new Date();
	Session session = HibernateUtil.getSession();
	Query query = session.createQuery("SELECT CURRENT_TIMESTAMP");
	dt = (Date)query.uniqueResult();
	return dt;
}

Mensagem de erro:
09:23:09,565 ERROR PARSER:56 - :0:0: unexpected end of subtree
unexpected end of subtree [SELECT CURRENT_TIMESTAMP]

Gostaria de pegar a data e hora do servidor mysql e nao do servidor Java.

Muito obrigado
Ademir

M

no lugar de

Query query = session.createQuery("SELECT CURRENT_TIMESTAMP");

coloque

SQLQuery query = session.createSQLQuery("SELECT CURRENT_TIMESTAMP");

ou

SQLQuery query = session.createSQLQuery("SELECT CURRENT_TIMESTAMP FROM DUAL");
AdemirPinto

marciavilaca:
no lugar de

Query query = session.createQuery("SELECT CURRENT_TIMESTAMP");

coloque

SQLQuery query = session.createSQLQuery("SELECT CURRENT_TIMESTAMP");

ou

SQLQuery query = session.createSQLQuery("SELECT CURRENT_TIMESTAMP FROM DUAL");

Valeu Márcia, deu certinho. Deus lhe abençoe!
Muito Obrigado
Ademir

Criado 29 de junho de 2005
Ultima resposta 13 de jul. de 2011
Respostas 10
Participantes 7