Mesmo eu adicionando os filtros ele ainda não me retorna o banco de dados MySQL já esta populado.
` public List buscarPorParametrosComCriteria(String nome, BigDecimal preco, LocalDate dataCadastro) {
    CriteriaBuilder builder = em.getCriteriaBuilder();
    CriteriaQuery<Produto> query = builder.createQuery(Produto.class);
    Root<Produto> from = query.from(Produto.class);
    Predicate filtros = builder.and();
    if (nome != null && nome.trim().isEmpty()) {
        filtros = builder.and(filtros, builder.equal(from.get("nome"), nome));
    }
    if (preco != null) {
        filtros = builder.and(filtros, builder.equal(from.get("preco"), preco));
    }
    if (dataCadastro != null) {
        filtros = builder.and(filtros, builder.equal(from.get("dataCadastro"), dataCadastro));
    }
    query.where(filtros);
    return em.createQuery(query).getResultList();
} ```
e aqui ta o main
```     public static void main(String[] args) {
    EntityManager em = JPAUtil.getEntityManager();
    ProdutoDAO produtoDAO = new ProdutoDAO(em);
    produtoDAO.buscarPorParametrosComCriteria("PS5", null, null);
} ```
Hibernate: 
select
    produto0_.id as id1_4_,
    produto0_.categoria_id as categori6_4_,
    produto0_.dataCadastro as datacada2_4_,
    produto0_.descricao as descrica3_4_,
    produto0_.nome as nome4_4_,
    produto0_.preco as preco5_4_ 
from
    produtos produto0_ 
where
    1=1