Queries com campo case insensitive e acentos no HQL/NamedQuery

Olá pessoal,

Sou meio inexperiente com java e estou tentando desenvolver alguma coisa utilizando JBoss, Hibernate, JPA e PostgreSQL. Estou tentando desenvolver uma “NamedQuery” que faça uma busca por um determinado campo texto que seja “case insensitive” e com acentos ou não…

No PostgreSQL a sintaxe é a seguinte:

Esta query me retorna algo assim:

id | nome

1 JOAO
2 João
3 joao
4 JoAo
5 joÃO

Qual o comando equivalente em HQL ou namedQuery que resolva este meu problema?

Ninguém?

Bom, com criteria ficaria algo do tipo

Example example = Example.create(cat) .excludeZeroes() //exclude zero valued properties .excludeProperty("color") //exclude the property named "color" .ignoreCase() //perform case insensitive string comparisons .enableLike(); //use like for string comparisons
Mas acho que usando um lower resolve seu problema(não sei se da melhor forma)

from Pessoa where lower(nome) ilike lower('%JoAo%');