Named query - order by parametrizado

1 resposta
L

Srs,
Existe como em uma NamedQuery eu parametrizar o order by?
exemplo

@NamedQuery(name = "NomeClasse.filterBySigla", query = "from NomeClasse nc where Upper(nc.sigla) like concat('%', :sigla, '%') order by :order")

No caso da query acima roda sem erro porém o resultado não vem ordenado.
O parametro :order no caso pode ser “sigla” ou “nome” mas em ambos os caso não funciona.
Agora se eu coloco o order by explicito, por exemplo

@NamedQuery(name = "NomeClasse.filterBySigla", query = "from NomeClasse nc where Upper(nc.sigla) like concat('%', :sigla, '%') order by nc.sigla")

aí funciona.

É possível setar o order by de uma namedquery em tempo de execução assim como fazemos para os parâmetros? Se sim alguém pode me dar uma ajuda de como fazer?

1 Resposta

marcondesmacaneiro

Tenho o mesmo problema.

Conseguiu alguma solução?

leojribeiro:
Srs,
Existe como em uma NamedQuery eu parametrizar o order by?
exemplo

@NamedQuery(name = "NomeClasse.filterBySigla", query = "from NomeClasse nc where Upper(nc.sigla) like concat('%', :sigla, '%') order by :order")

No caso da query acima roda sem erro porém o resultado não vem ordenado.
O parametro :order no caso pode ser “sigla” ou “nome” mas em ambos os caso não funciona.
Agora se eu coloco o order by explicito, por exemplo

@NamedQuery(name = "NomeClasse.filterBySigla", query = "from NomeClasse nc where Upper(nc.sigla) like concat('%', :sigla, '%') order by nc.sigla")

aí funciona.

É possível setar o order by de uma namedquery em tempo de execução assim como fazemos para os parâmetros? Se sim alguém pode me dar uma ajuda de como fazer?

Criado 23 de julho de 2008
Ultima resposta 16 de abr. de 2012
Respostas 1
Participantes 2