Olá, Luis! Tudo bem?
Seguindo o link que você compartilhou conseguir clonar e testar o código do seu projeto, e o erro que eu estava tendo era quando eu tentava fazer a consulta ao passar um nome e não preço, imagino que isso seja o erro que você comentou.
Ele estava acontecendo que você colocou para a leitura dos dois parâmetros acontecessem ao mesmo tempo, sendo que o preco
era o primeiro a ser contabilizado causando um erro ao inserir uma String.
Para resolver isso adicionei um try - catch
para verificar o tipo:
public static void consulta(RepositoryProduto repositoryProduto){
System.out.println("Escolha a Prço ou o nome: ");
String nome = null;
int preco = null;
String entrada = leitura.nextLine();
try {
preco = Double.parseDouble(entrada);
} catch (NumberFormatException e) {
nome = entrada; // Se não for um número, assume que é um nome
}
List<Produto> produtoList = repositoryProduto.findByPrecoLessThanOrNomeContaining(preco, nome);
if (produtoList.isEmpty()) {
System.out.println("Nenhum produto encontrado.");
} else {
produtoList.forEach(System.out::println);
}
}
No mais, recomendo que use o tipo Double
para a variável preco
por uma questão de boas práticas.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.