Dúvidas quanto a montar uma busca em JSF

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:

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

[quote=javaFX]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: [/quote]
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.

[quote=javaFX]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.
[/quote]
: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