1
resposta

Listar ultimos 10 itens de uma consulta

Em qual aula poderia entender em como criar um endpoint que liste os ultimos 10 registros de um cadastro? Estaria criando um grafico desta lista de ultimos 10 de acordo com criterio da matricula. "Ex.: Tenho uma tabela Aluno com varios cadastros de alunos (podem repetir) onde sao lançadas notas de conceito de acordo com comportamento. Queria listar oss 10 ultimos conceitos tomando como base a matricula. ..Informo a matricula no parametro do endpoint e ele me retorna o json com os ultimos 10 conceitos.

1 resposta

Olá Reliquias,

Para listar os últimos 10 registros de um cadastro utilizando Spring Data JPA, você pode utilizar a anotação @Query na sua interface de repositório e criar uma consulta personalizada que retorne apenas os 10 últimos registros. Por exemplo:

public interface AlunoRepository extends JpaRepository<Aluno, Long> {
    @Query("SELECT a FROM Aluno a WHERE a.matricula = :matricula ORDER BY a.id DESC")
    List<Aluno> findUltimos10Conceitos(@Param("matricula") String matricula, Pageable pageable);
}

Nesse exemplo, a consulta retorna os registros da entidade Aluno que possuem a matrícula informada como parâmetro, ordenados pelo id em ordem decrescente (ou seja, os últimos registros primeiro) e limitados a 10 resultados.

Para utilizar essa consulta no seu endpoint, você pode injetar o AlunoRepository na sua classe de serviço e chamar o método findUltimos10Conceitos passando a matrícula e um objeto PageRequest com a página e tamanho desejados. Por exemplo:

@RestController
public class AlunoController {
    @Autowired
    private AlunoRepository alunoRepository;

    @GetMapping("/alunos/{matricula}/ultimos-conceitos")
    public List<Aluno> getUltimos10Conceitos(@PathVariable String matricula) {
        Pageable pageable = PageRequest.of(0, 10);
        return alunoRepository.findUltimos10Conceitos(matricula, pageable);
    }
}

Nesse exemplo, o endpoint /alunos/{matricula}/ultimos-conceitos recebe a matrícula como parâmetro na URL e retorna os últimos 10 registros da entidade Aluno que possuem essa matrícula.

Espero ter ajudado e bons estudos!