Pessoal,
Sou iniciante no Hibernate, estou precisando fazer algo do tipo:
SELECT DATEDIFF(now(), nascimento) from usuario;
Isso funcionaria perfeitamente usando SQL Nativa, porém gostaria de saber se existe uma forma de fazer usando HQL.
Melhor do que isso, gostaria de fazer isso diretamente do modelo, se for possível…
Abs.
Marcelo
Opa Mauricio, blz?
Até consegui usar sua dica… foi muito válida! O problema é que eu preciso ter condições de fazer consultas HQL com a idade do usuário, exemplo:
createQuery(“SELECT u FROM Usuario WHERE idade >= 30”);
Pelo que estou vendo, uma propriedade @Transient não fica disponível para consulta, correto?
Existe alguma forma de fazer isso? ou seja, eu não quero gravar na tabela uma coluna de idade (ela precisa ser um campo calculado), sei que eu poderia criar uma View no BD já retornando a idade do usuário, mas acho que deve ter alguma forma mais elegante de fazer isso, ou não?
Abs.
Marcelo
usa o metodo current_date() e faz a conta
SELECT u FROM Usuario u WHERE ((u.dataNascimento - current_date()) / 365) > 30
acho q assim da certo, acho! rsss
Olá Mauricio,
Valeu pela resposta… acho que vai funcionar sim sua dica, o único detalhe é que quando eu divido por 365 olha o que ele retorna:
A segunda linha deveria mostrar 3 anos ou não?

Tem alguma dica?
Abs.
Marcelo
Cara, fui fazer um teste aqui e funcionou normalmente, posso estar falando bobagem, mas acho que essa função retorna dados de acordo com o SGBD.
Uso Oracle aqui e nele quando subtrai datas ele retorna o resultado em dias. Qual vc esta usando ae?
Cara aqui é MySQL, ele retorna em dias também, mas como posso transformar em anos?
Valeu mais uma vez cara, está ajudando pakas…
Abs.
Marcelo