Minha lista java não retorna apenas os objetos

Oi pessoal tudo blz?

Estou com o seguinte problema, estou fazendo um filtro utilizando criteria, e preciso retornar uma lista de objetos, para eu conseguir usar no meu frontend, mas está acontecendo o seguinte, o endpoint me retorna os dados, mas com um LIST:[ antes dos meus objetos, tipo como se fosse os objetos pertecentes a esse list, ele está assim:

image

Mas eu preciso somente que me retorne a lista de objetos, sem esse List na frente

Segue meu código:

Controller

@RestController
@RequestMapping("api")
public class ClienteResource {

@Autowired
    private final ClienteService clienteService;
   
    private List<ClienteDto> result;

    public ClienteResource(ClienteService clienteService) {
        this.clienteService = clienteService;
    }

 @GetMapping(value = "/findClientsFinances")
    public ResponseEntity<List<ClienteDto>> findAllClientsFinances(Pageable pageable,
                                                                  @RequestParam(required = false, name = "nome") String nome,
                                                                  @RequestParam(required = false, name = "pago") Boolean pago,
                                                                  @RequestParam(required = false, name = "vencido") Boolean vencido,
                                                                  @RequestParam(required = false, name = "dataInicio") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate dataInicio,
                                                                  @RequestParam(required = false, name = "dataFim")@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate dataFim,
                                                                  Boolean checker) {

      //  try {
            Page<ClienteDto> clienteDto = clienteService.findAllCriteria(pageable, nome, pago, vencido, dataInicio, dataFim);

            result = clienteDto.getContent();


            HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(ServletUriComponentsBuilder.fromCurrentRequest(), clienteDto);
            return ResponseEntity.ok().headers(headers).body(result);
//        } catch (Exception e) {
//            System.out.println("Erro ao encontrar cliente");
//            throw new BadRequestException("Erro ao encontrar cliente");
//        }
    }

Dto

package br.com.gerenciamentoPagamento.pagamento.controller.dto;

import br.com.gerenciamentoPagamento.pagamento.domain.Cliente;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.StringJoiner;


public class ClienteDto implements Serializable {

    private Long id;
    private Long userId;
    private Long customerId;
    private Boolean statusPagamento;
    private String nome;
    private String email;
    private String code;
    private String cpf;
    private LocalDate dataPagamento;
    private LocalDate dataVencimento;

    public ClienteDto(Long id, Long userId, Long customerId, Boolean statusPagamento, String nome, String email, String code, String cpf, LocalDate dataPagamento, LocalDate dataVencimento) {
        this.id = id;
        this.userId = userId;
        this.customerId = customerId;
        this.statusPagamento = statusPagamento;
        this.nome = nome;
        this.email = email;
        this.code = code;
        this.cpf = cpf;
        this.dataPagamento = dataPagamento;
        this.dataVencimento = dataVencimento;
    }

    public ClienteDto() {

    }

    public ClienteDto(Cliente cliente) {
        this.id = cliente.getId();
        this.userId = cliente.getUserId();
        this.customerId = cliente.getCustomerId();
        this.statusPagamento = cliente.getStatusPagamento();
        this.email = cliente.getEmail();
        this.code = cliente.getCode();
        this.nome = cliente.getNome();
        this.dataPagamento = cliente.getDataPagamento();
        this.dataVencimento = cliente.getDataVencimento();
        this.cpf = cliente.getDocumento();
    }


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public Boolean getStatusPagamento() {
        return statusPagamento;
    }

    public void setStatusPagamento(Boolean statusPagamento) {
        this.statusPagamento = statusPagamento;
    }

    public LocalDate getDataPagamento() {
        return dataPagamento;
    }

    public void setDataPagamento(LocalDate dataPagamento) {
        this.dataPagamento = dataPagamento;
    }

    public LocalDate getDataVencimento() {
        return dataVencimento;
    }

    public void setDataVencimento(LocalDate dataVencimento) {
        this.dataVencimento = dataVencimento;
    }

    @Override
    public String toString() {
        return "ClienteDto{" +
                "id=" + id +
                ", userId=" + userId +
                ", customerId=" + customerId +
                ", statusPagamento=" + statusPagamento +
                ", nome='" + nome + '\'' +
                ", email='" + email + '\'' +
                ", code='" + code + '\'' +
                ", cpf='" + cpf + '\'' +
                ", dataPagamento=" + dataPagamento +
                ", dataVencimento=" + dataVencimento +
                '}';
    }
}

Service


@Service
public class ClienteService {

private CustomFinanceiroRepository customFinanceiroRepository;

    public ClienteService(CustomFinanceiroRepository customFinanceiroRepository) {
        this.customFinanceiroRepository = customFinanceiroRepository;
    }


public Page<ClienteDto> findAllCriteria(Pageable pageable, String nome, Boolean pago, Boolean vencido, LocalDate dataInicio, LocalDate dataFim){

        return customFinanceiroRepository.findAllClientes(pageable, nome, pago, vencido, dataInicio, dataFim).map(ClienteDto::new);
    }
}

Criteria

import br.com.gerenciamentoPagamento.pagamento.domain.Cliente;
import br.com.gerenciamentoPagamento.pagamento.domain.Cliente_;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;

import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

@Repository
public class CustomFinanceiroRepository {

    @Autowired
    private EntityManager entityManager;

    public Page<Cliente> findAllClientes(Pageable pageable, String nome, Boolean statusPagamento, Boolean vencido, LocalDate dataInicial, LocalDate dataFinal) {

        CriteriaBuilder builder = entityManager.getCriteriaBuilder();
        CriteriaQuery<Cliente> criteriaQuery = builder.createQuery(Cliente.class);
        Root<Cliente> clienteRoot = criteriaQuery.from(Cliente.class);
        List<Predicate> predicates = new ArrayList<>();

        //Verifica se nome está preenchido
        if(nome != null) {
            Predicate nomePredicate = builder.like(clienteRoot.get("nome"), "%" + nome + "%");
            predicates.add(nomePredicate);
        }

       if (statusPagamento != null) {
           if(statusPagamento.equals(true)) {
               Predicate pagoPredicate = builder.isTrue(clienteRoot.get("statusPagamento"));
               predicates.add(pagoPredicate);
           } else {
               Predicate pagoPredicate = builder.isFalse(clienteRoot.get("statusPagamento"));
               predicates.add(pagoPredicate);
           }
       }

       if (dataInicial != null && dataFinal != null) {
            Predicate dataInicialPredicate = builder.greaterThanOrEqualTo(clienteRoot.get(Cliente_.dataPagamento), dataInicial);
            predicates.add(dataInicialPredicate);
            Predicate dataFinalPredicate = builder.lessThanOrEqualTo(clienteRoot.get(Cliente_.dataPagamento), dataFinal);
            predicates.add(dataFinalPredicate);
       }

        if (vencido != null) {
                Predicate pagoPredicate = builder.lessThanOrEqualTo(clienteRoot.get(Cliente_.dataVencimento), LocalDate.now());
                predicates.add(pagoPredicate);
        }



        Predicate[] predicateArray = new Predicate[predicates.size()];
        predicates.toArray(predicateArray);

        criteriaQuery.where(predicateArray);

        //Seleciona o limite por página
        List<Cliente> result = entityManager.createQuery(criteriaQuery)
                .setFirstResult((int) pageable.getOffset())
                .setMaxResults(pageable.getPageSize()).getResultList();

        //Conta o total de registros
        CriteriaQuery<Long> countQuery = builder.createQuery(Long.class);
        Root<Cliente> bookRootCount = countQuery.from(Cliente.class);
        countQuery.select(builder.count(bookRootCount)).where(builder.and(predicates.toArray(new Predicate[predicates.size()])));

        Long count = entityManager.createQuery(countQuery).getSingleResult();

        return new PageImpl<>(result, pageable, count);

    }
}