Passo a Passo:
- Produtos com preço maior que um valor:
List<Produto> produtosCaros = produtoRepository.findByPrecoGreaterThan(valor);
- Produtos ordenados por preço crescente:
List<Produto> produtosPorPrecoCrescente = produtoRepository.findAllByOrderByPrecoAsc();
- Produtos ordenados por preço decrescente:
List<Produto> produtosPorPrecoDecrescente = produtoRepository.findAllByOrderByPrecoDesc();
- Produtos que começam com uma letra específica:
List<Produto> produtosComLetra = produtoRepository.findByNomeStartingWith(letra);
- Pedidos feitos entre duas datas:
List<Pedido> pedidosEntreDatas = pedidoRepository.findByDataEntre(dataInicio, dataFim);
- Média de preços dos produtos:
Double mediaPrecos = produtoRepository.findAverageBy();
- Preço máximo de um produto em uma categoria:
Double precoMaximo = produtoRepository.findMaxPrecoByCategoria(categoria);
- Número de produtos por categoria:
Map<Categoria, Long> contagemPorCategoria = produtoRepository.countByCategoria();
- Categorias com mais de 10 produtos:
List<Categoria> categoriasComMaisDe10Produtos = categoriaRepository.findByProdutosCountGreaterThan(10);
- Produtos filtrados por nome ou por categoria:
List<Produto> produtosFiltrados = produtoRepository.findByNomeContainingOrCategoria(nome, categoria);
- Consulta nativa:
@Query(value = "SELECT * FROM produto ORDER BY preco DESC LIMIT 5", nativeQuery = true)
List<Produto> encontrarOsCincoMaisCaros();