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!