Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

JPQL com LIKE

Opa, pessoal!

Tentei usar o LIKE com JPQL, mas não descobri como formar a query corretamente, tentei de alguns jeitos, como:

String jpql = "SELECT p FROM Produto p WHERE p.nome like %:nome%";

Mas dava erro e não compilava.

Só consegui passando o % pelo setParameter:

    public List<Produto> findByNome(String nome) {
        String jpql = "SELECT p FROM Produto p WHERE p.nome like :nome";

        return em.createQuery(jpql, Produto.class)
                .setParameter("nome", "%" + nome + "%")
                .getResultList();
    }

Assim, foi! Mas não teria como fazer direto na string da query?

2 respostas
solução!

Tenta dessa forma this.em.createQuery( "select p from Produto p where p.nome like CONCAT('%', :nome ,'%')", Produto.class) .setParameter("nome", nome) .getResultList();

Boa, Vinicius, funcionou assim. Valeu!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software