Case HQL

6 respostas
aureliolima

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.

6 Respostas

Hebert_Coelho

Não creio que exista Case com HQL.

Aqui mostra uma lista de funções disponíveis: JPA Consultas e Dicas.

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.

Hebert_Coelho

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.

Novamente, não existe case para JPQL que é a base. Nunca ouvi falar de case para HQL.

Você teria que usar NativeQuery.

aureliolima

Esta sintaxe retirei da de http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html

Hebert_Coelho

aureliolima:
Esta sintaxe retirei da de http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html
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

aureliolima

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.

Criado 21 de janeiro de 2013
Ultima resposta 21 de jan. de 2013
Respostas 6
Participantes 2