1
resposta

[Projeto] Desafio: hora da prática

ProdutoRepository List findByNome(String nome);

List findByCategoria(Categoria categoria);

List findByPrecoGreaterThan(BigDecimal preco);

List findByPrecoLessThan(BigDecimal preco);

List findByNomeContaining(String termo);

List findByCategoriaOrderByPrecoAsc(Categoria categoria);

List findByCategoriaOrderByPrecoDesc(Categoria categoria);

long countByCategoria(Categoria categoria);

long countByPrecoGreaterThan(BigDecimal preco);

List findByPrecoLessThanOrNomeContaining(BigDecimal preco, String termo);

List findTop3ByOrderByPrecoDesc();

List findTop5ByCategoriaOrderByPrecoAsc(Categoria categoria);

PedidoRepository

List findByDataEntregaIsNull();

List findByDataEntregaIsNotNull();

List findByDataPedidoAfter(LocalDate data);

List findByDataPedidoBefore(LocalDate data);

List findByDataPedidoBetween(LocalDate inicio, LocalDate fim);

1 resposta

Oi, Camila! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu uso das query methods no Spring Data JPA está ótimo! Você conseguiu aplicar bem os nomes compostos para que o Spring gere as consultas automaticamente com base nos métodos declarados. Isso é um dos grandes benefícios dessa abordagem.

Sobre o método que você mandou:


List<Produto> findByPrecoLessThanOrNomeContaining(BigDecimal preco, String termo);

Ele vai buscar produtos que custam menos que um valor informado ou que contenham determinado termo no nome. É uma forma bem eficiente de combinar critérios de filtro.

E o uso do findTop3ByOrderByPrecoDesc() também é uma ótima forma de retornar os produtos mais caros, já ordenados!

Só uma dica extra: se você quiser buscar por uma categoria e filtrar o nome ao mesmo tempo, pode combinar os critérios assim:


List<Produto> findByCategoriaAndNomeContaining(Categoria categoria, String termo);

Isso permite buscas mais refinadas, o que é bem útil para usuários filtrarem seus produtos por tipo e nome, por exemplo.

Ótimo trabalho!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!