How to filter more than one word in Java Web

0

So here is my filter

@NamedQueries({
@NamedQuery(name = "Doencas.findAll", query = "select d from Doencas d"),
@NamedQuery(name = "Doencas.findFilter", query = "select d from Doencas d" + " WHERE UPPER( d.nome ) like :filtro or UPPER (d.sintomas) like :filtro")


})

It is working, but only filters one word at a time, for example, if I type Pain and vomit, it will not filter the symptoms of diseases that have pain and vomit but if I type only vomit it appears all the diseases it contains the symptom of vomiting Here you also have my DAO file if needed

package dao;

import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import Modelo.Doencas;


 public class DoencasDAO{


  protected EntityManager em;


   public DoencasDAO()  {
    EntityManagerFactory emf;
   try {
       emf = Conexao.getConexao();
       em = emf.createEntityManager();
   } catch (Exception ex) {
       Logger.getLogger(DoencasDAO.class.getName()).log(Level.SEVERE, null, ex);
       Logger.getLogger("Não foi possível realizar a conexão com a unidade de persistência. Verifique a conexão");

   }

}

    public Boolean incluir(Doencas obj) {
    Boolean retorno;
    try {
        em.getTransaction().begin();
        em.persist(obj);
        em.getTransaction().commit();
        retorno = true;
    } catch (RuntimeException e) {
         Logger.getLogger(Doencas.class.getName()).log(Level.SEVERE, null, 
   e);
       Logger.getLogger("Erro ao incluir, veja o código acima");

        em.getTransaction().rollback();

        retorno = false;
        throw e;
    } finally {
        //em.close();

    }
    return retorno;
     }

    public Boolean alterar(Doencas obj) {
    Boolean retorno;
    try {
        em.getTransaction().begin();
        em.merge(obj);
        em.getTransaction().commit();
        retorno = true;
    } catch (RuntimeException e) {
         Logger.getLogger(DoencasDAO.class.getName()).log(Level.SEVERE, null, e);
      Logger.getLogger("Erro ao alterar, veja o código acima"); 
        em.getTransaction().rollback();
        retorno = false;
        throw e;
    } finally {
        // em.close();
    }
    return retorno;
    }

      public Boolean excluir(Doencas obj) {
   Boolean retorno;
    try {
        em.getTransaction().begin();
        em.remove(obj);
        em.getTransaction().commit();
        retorno = true;
    } catch (RuntimeException e) {
         Logger.getLogger(DoencasDAO.class.getName()).log(Level.SEVERE, null, e);
         Logger.getLogger("Erro ao excluir, veja o código acima"); 

        em.getTransaction().rollback();
        retorno = false;
    } finally {
        //em.close();
    }
    return retorno;
     }

        public List<Doencas> listar() {
       return em.createQuery("Select d from Doencas d").getResultList();
       }

    public List<Doencas> listar(String filtro){
     return 

  em.createNamedQuery("Doencas.findFilter").setParameter("filtro","%" + 
     filtro.toUpperCase() + "%").getResultList();
    }



    public Doencas buscarPorChavePrimaria(Integer chaveprimaria) {
   return em.find(Doencas.class, chaveprimaria);
    }


       public void fecharConexao() {
    Conexao.closeConexao();
      }





              }
    
asked by anonymous 29.09.2018 / 06:59

0 answers