Olá galera, estou eu aqui de novo.
Estou desenvolvendo um projeto em JSF e preciso fazer
um comando de busca para localizar o funcionário, por
exemplo pelo CPF ou pelo ID mas ele não entende o número
do CPF como um todo ele faz a busca de número por número
e não retorna um único resultado, o mesmo acontece quando
passo o ID. Por exemplo se passo o número 12 ele retorna
tudo que tem o número 1 e 2. Se alguém tiver algum exemplo.
To quebrando a cabeça e não estou achando solução.
Brigadão!!! :shock:
Dúvidas quanto a montar uma busca em JSF
4 Respostas
Olá tudo bem? Pela sua descrição parece que você está usando a clausula like em seu SQL. Se você pudesse colocar o código do seu método que faz a pesquisa ajudaria.
att
Olá galera, estou eu aqui de novo.
Estou desenvolvendo um projeto em JSF e preciso fazer
um comando de busca para localizar o funcionário, por
exemplo pelo CPF ou pelo ID mas ele não entende o número
do CPF como um todo ele faz a busca de número por número
e não retorna um único resultado, o mesmo acontece quando
passo o ID. Por exemplo se passo o número 12 ele retorna
tudo que tem o número 1 e 2. Se alguém tiver algum exemplo.
To quebrando a cabeça e não estou achando solução.
Brigadão!!! :shock:
Bom dia, vc pode usar o ~* esse comparador eu sempre uso pra pesquisar no postgreSQL, desse jeito:
select * from usuario u where u.cpf ~* 12
Testa aí pra ver se funciona, qualquer duvida pode postar 8)
Carlos naum funcionou da erro.
Da uma olhada no meu código estou usando o BD MySQL naum sei influência em alguma coisa
public List getFuncionarios() {
EntityManager em = emf.createEntityManager();
if(buscanome == null) {
funcionarios = em.createNativeQuery("SELECT fun.* from Funcionario fun ",Funcionario.class).getResultList();
}
else
{
funcionarios = em.createNativeQuery(“SELECT fun.* from Funcionario fun WHERE " + campo + " LIKE '%” + buscanome + “%’”,Funcionario.class).getResultList();
}
return funcionarios;
}
mas ele naum entende por exemplo se passo o Id do funcionário = 12 ele retorna tudo que tem o número 1 e 2.
Carlos naum funcionou da erro.
Da uma olhada no meu código estou usando o BD MySQL naum sei influência em alguma coisapublic List getFuncionarios() { EntityManager em = emf.createEntityManager(); if(buscanome == null) { funcionarios = em.createNativeQuery("SELECT fun.* from Funcionario fun ",Funcionario.class).getResultList(); } else { funcionarios = em.createNativeQuery(“SELECT fun.* from Funcionario fun WHERE " + campo + " LIKE '%” + buscanome + “%’”,Funcionario.class).getResultList(); } return funcionarios; }mas ele naum entende por exemplo se passo o Id do funcionário = 12 ele retorna tudo que tem o número 1 e 2.
:idea: Ok, agora acho que entendi melhor o seu problema, nesse caso não cabe o uso do like, tenta fazer com = :
"SELECT fun.* from Funcionario fun WHERE " + campo + " = " + buscanome
Criado 10 de agosto de 2010
Ultima resposta 12 de ago. de 2010
Respostas 4
Participantes 3