Na implantação sugerida pelo nistrutor, foi criado um método no repositório de Consultas, porém não foi dada a implantação.
Segue sugestão de implantação usando a anotação @Query para busca por id.
package med.voll.web_application.domain.consulta;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
public interface ConsultaRepository extends JpaRepository<Consulta, Long> {
Page<Consulta> findAllByOrderByData(Pageable paginacao);
@Query("""
SELECT c FROM Consulta c
WHERE c.paciente.id = :id
ORDER BY c.data
""")
Page<Consulta> buscarConsultas(Pageable paginacao, Long id);
}
O método listarna Service ficou
public Page<DadosListagemConsulta> listar(Pageable paginacao, Usuario logado) {
if(logado.getAuthorities().contains(new SimpleGrantedAuthority("ROLE_ATENDENTE")))
return repository.findAllByOrderByData(paginacao).map(DadosListagemConsulta::new);
return repository.buscarConsultas(paginacao, logado.getId()).map(DadosListagemConsulta::new);
}