Olá estou com um problema que o HQL não está suportando utilização de um CASE, sendo que o erro que retorna é <AST>:1:1267: unexpected AST node: case.
Procurei sobre esse erro, porém não obtive respostas. Se alguém puder me ajudar, agradeceria muito.
Não creio que exista Case com HQL.
Aqui mostra uma lista de funções disponíveis: JPA Consultas e Dicas.
existe sim, seria essa a sintaxe:
"Simple" case, case ... when ... then ... else ... end, and "searched" case, case when ... then ... else ... end
porém da o erro que relatei no primeiro post.
[quote=aureliolima]existe sim, seria essa a sintaxe:
"Simple" case, case ... when ... then ... else ... end, and "searched" case, case when ... then ... else ... end
porém da o erro que relatei no primeiro post.[/quote]Novamente, não existe case para JPQL que é a base. Nunca ouvi falar de case para HQL.
Você teria que usar NativeQuery.
[quote=aureliolima]Esta sintaxe retirei da de http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html[/quote]Eita. Mas eles nem mostram como utilizar.
Detesto isso!
Veja c te ajuda: http://stackoverflow.com/questions/456181/using-a-case-statement-in-hql-select
Pelo que vi, parece que o case é aceito porém sem nenhuma condição dentro do THEN ou do ELSE.
Por enquanto achei uma outra solução pra não perder muito tempo nisso, que é a criação de uma outra consulta com hql que retornará apenas um bolean, aí testo o que eu queria, sem utilizar um case para isso.
Obrigado Hebert Coelho.