Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

FindAll(paginacao)

Ao tentar implementar a função abaixo:

fun listar( paginacao: Pageable ): Page{ val topicos = repository.findAll(paginacao) return topicos.map { t -> topicoViewMapper.map(t) } }

Aparece o seguinte erro:

None of the following functions can be called with the arguments supplied. findAll(Example<TypeVariable(S)!>) where S = TypeVariable(S) for fun <S : Topico!> findAll(example: Example<S!>): (Mutable)List<S!> defined in br.com.alura.Alura.Repository.TopicoRepository findAll(Pageable) defined in br.com.alura.Alura.Repository.TopicoRepository findAll(Sort) defined in br.com.alura.Alura.Repository.TopicoRepository

5 respostas

Oi Mariana,

Posta aqui o código das suas classes TopicoController, TopicoService e TopicoRepository

class TopicoController (private val service: TopicoService) {

@GetMapping
fun listar(
    @PageableDefault(
        size = 5,
        sort = ["dataCriacao"],
        direction = org.springframework.data.domain.Sort.Direction.DESC) paginacao: Pageable
): List<TopicoView> {
    return service.listar()
}

class TopicoService (
private val repository: TopicoRepository,
private val novoTopicoFormMapper: NovoTopicoFormMapper,
private val topicoViewMapper: TopicoViewMapper,
private val messageNotFound: String = "Tópico não encontrado"
){



fun listar(
    paginacao: Pageable
): Page<TopicoView>{
    val topicos = repository.findAll(paginacao).
    return topicos.map{t ->
        topicoViewMapper.map(t)
    }.
}

package br.com.alura.Alura.Repository

import br.com.alura.Alura.model.Topico import org.springframework.data.jpa.repository.JpaRepository

interface TopicoRepository: JpaRepository<Topico, Long> { }

No Controller você está chamando o método sem passar o parâmetro da paginação:

return service.listar()

Altere para:

return service.listar(paginacao)

Continua dando erro

solução!

O Pageable foi importado do módulo errado.