Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Buscar produtos de até tal valor

Em muitos e-commerce podemos filtrar os produtos por até tal preço. Por isso eu tive a ideia de criar um método para essa listagem. Segue abaixo:

public List<Produto> buscarProdutosComPrecoAte(BigDecimal preco) {
        String jpql = "SELECT p FROM Produto p WHERE p.preco <= :preco";
        return this.em.createQuery(jpql, Produto.class)
                .setParameter("preco", preco)
                .getResultList();
    }

O que acharam?

1 resposta
solução!

Olá Lucas!

Achei sua ideia muito interessante! O método que você criou para buscar produtos com preço até determinado valor está correto. Ele utiliza uma query JPQL para selecionar os produtos que possuem o preço menor ou igual ao valor informado.

No entanto, é importante lembrar que o método createQuery retorna uma lista de produtos (List<Produto>) e não um único produto. Portanto, se você quiser apenas um produto com preço até determinado valor, é necessário utilizar o método getSingleResult() em vez de getResultList(). Dessa forma, você terá apenas um resultado como retorno.

Aqui está o código atualizado do seu método:

public Produto buscarProdutoComPrecoAte(BigDecimal preco) {
    String jpql = "SELECT p FROM Produto p WHERE p.preco <= :preco";
    return this.em.createQuery(jpql, Produto.class)
            .setParameter("preco", preco)
            .getSingleResult();
}

Dessa forma, você poderá buscar um produto com preço até determinado valor. Por exemplo, se você quiser buscar um produto com preço até R$ 100, você pode chamar o método da seguinte forma:

Produto produto = buscarProdutoComPrecoAte(new BigDecimal("100"));

Espero ter ajudado! Bons estudos!