Dúvidas quanto a montar uma busca em JSF

4 respostas
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:

4 Respostas

JavaFXMan

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

Carlos_ds_jar

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:

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)

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.

Carlos_ds_jar

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.


: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