Problemas nas buscas com hibernate e Acentuação

6 respostas
hugo.hlcxcx

Pessoal boa tarde,

Tenho uma aplicação Java EE rodando no JBoss 6 que faz uso intenso de JPA e EJB’s, além de utilizar o SQL Server como SGBD. Estou com problemas para implementar uma função de busca por nomes, onde eu consiga receber um nome qualquer como argumento e esta função me retorne o todos os registros relevantes com acentuação ou não.

Exemplo:

Quero pesquisar o cliente João, então ao passar a String João como argumento para a função, através da JPA ela me retorne todos os registros relevantes como joão, joao, João, Joao, JOAO e etc., ignorando a acentuação.

Desde já agradeço.

6 Respostas

pedruhenrik

tipo um like no código sql?

douglascst90
Tente isso ai amigo =]

Tente isso ai amigo =]

hugo.hlcxcx

Exatamente, mas ele precisa trazer registro acentuados ou não.

douglascst90:
Query query = manager.createQuery("select pf from PessoaFisica pf where pf.nome like'" + nome + "%'");

Tente isso ai amigo =]


Amigo, obrigado pela resposta, mas isso eu ja fiz. Minha consulta ja está com like porém se eu passo como parametro o nome João (acentuado) a query só busca pelos nomes acentuados, ignorando os nomes como Joao (sem acentos). Meu problema é justamente esse, como trazer os registros acentuados ou não na mesma consulta?

Hebert_Coelho

douglascst90:
Query query = manager.createQuery("select pf from PessoaFisica pf where pf.nome like'" + nome + "%'");

Tente isso ai amigo =]

Só tome cuidado com essa abordagem, pois ela permite o chamado SQL Injection. [=

hugo.hlcxcx

Hebert Coelho:
douglascst90:
Query query = manager.createQuery("select pf from PessoaFisica pf where pf.nome like'" + nome + "%'");

Tente isso ai amigo =]

Só tome cuidado com essa abordagem, pois ela permite o chamado SQL Injection. [=

Eu costumo usar os parâmetros da forma “elegante” mesmo, utilizando o metodo setParameter da TypedQuery. Quanto ao meu problema, ainda não encontrei nenhuma solução que atenda a minha necessidade.

Alguém teria mais alguma sugestão ?

hugo.hlcxcx

Alguém já passou por essa situação e poderia dar alguma sugestão ?

Criado 9 de novembro de 2012
Ultima resposta 21 de nov. de 2012
Respostas 6
Participantes 4