Alguém sabe me dizer como fazer pra fazer uma pesquisa no hibernate independente da palvra estar acentuada ou não?
Tipo
select p from Pessoa p where p.nome ilike ‘%jose%’
possa retornar tanto pessoas com nome jose quanto josé
Alguém sabe me dizer como fazer pra fazer uma pesquisa no hibernate independente da palvra estar acentuada ou não?
Tipo
select p from Pessoa p where p.nome ilike ‘%jose%’
possa retornar tanto pessoas com nome jose quanto josé
E ae,
Caso o database seja o Oracle o modo mais facil de fazer isso e que lhe traz um bom resultado é substituir o caracter acentuado por _ (underline) o underline diz para a consulta que naquele lugar pode existir qualquer caracter.
Por exemplo: José
SELECT .... FROM NOMES WHERE NOME = 'jos_'
Sua consulta retornaria Jose e José, o unico problema é q caso existe um Josa, Josc, Josq, Jos1, ele irá trazer também !
Mas com Oracle esse é o jeito mais simples de fazer algo assim.
A outra maneira seria identidicar o caracter acentuado e adicionar a consulta todas as possibilidades:
SELECT .... FROM NOMES WHERE (NOME = 'jose' OR NOME = 'josé' OR NOME = 'josê'
OR NOME = 'josë' OR NOME = 'josè'...)
[]s
Cara, o BD é Postgres, então essa do underline não deve funcionar. No postgres eu vi que dá pra fazer usando a função translate. Mas eu queria fazer isso com o HQL do hibernate e não escrever direto no sql
Mesmo assim valeu pela dica