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