Paginação do springboot de um DTO

Eu to utilizando a paginação do SpringBoot. Como eu faria para paginar os dados de um DTO?

Esse é o metodo que chamdo via api.

@GetMapping(value = "{page}/{count}")
public ResponseEntity<Response<Page<ConfiguracaoBackup>>> findAll(HttpServletRequest request, @PathVariable("page") int page,@PathVariable("count") int count) {
	
	Response<Page<ConfiguracaoBackup>> response = new Response<Page<ConfiguracaoBackup>>();
	Page<ConfiguracaoBackup> configuracoes = service.findAll(page,count);
	
	response.setData(configuracoes);
	return ResponseEntity.ok(response);
	
}

Repare que ele pagina a classe configuraçãobackup e não meu dto.

Classe de DTO.

public class ConfiguracaoBackupDto {

private Integer id;
private Integer empresaId;
private Boolean ativo;
private String descricao;
private Integer diasbackup;	
private Integer usuarioInsercaoId;
private Integer usuarioAlteracaoId;
private Date dataHoraInsercao;
private Date dataHoraAlteracao;
private String diretorioCopia1;
private String diretorioCopia2;
private String diretorioCopia3;

public ConfiguracaoBackupDto(Integer id, Integer empresaId, boolean ativo,String descricao,Integer diasBackup,String dirCopia1,
		String dirCopia2,String dirCopia3,Integer usuarioInsercaoId,Integer usuarioAlteracaoId,Date dataHoraInsercao, Date dataHoraAlteracao) {
	
	this.id = id;
	this.empresaId = empresaId;
	this.ativo = ativo;
	this.descricao = descricao;
	this.diasbackup = diasBackup;		
	this.diretorioCopia1 = dirCopia1;
	this.diretorioCopia2 = dirCopia2;
	this.diretorioCopia3 = dirCopia3;
	this.usuarioInsercaoId = usuarioInsercaoId;
	this.usuarioAlteracaoId = usuarioAlteracaoId;
	this.dataHoraInsercao = dataHoraInsercao;
	this.dataHoraAlteracao = dataHoraAlteracao;
	
}

@Entity
@Table(name=“configuracaobackup”)
public class ConfiguracaoBackup implements Serializable{

private static final long serialVersionUID = -6947762387122485012L;

@Id
@Column(name="codigo_cbk")
private Integer id;
	
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="codemp_cbk")
private Empresa empresa;

@Column(name="ativo_cbk")
private Boolean ativo;

@Column(name="descri_cbk")
private String descricao;

@Column(name="diasbkp_cbk")
private Integer diasBackup;

@Column(name="cmd_cbk")
private String comando;

@ManyToOne
@JoinColumn(name="usuins_cbk")
private Usuario usuarioInsercao;

@Column(name="dahins_cbk")
private Date dataHoraInsercao;

@ManyToOne
@JoinColumn(name="usualt_cbk")
private Usuario usuarioAlteracao;

@Column(name="dahalt_cbk")
private Date dataHoraAlteracao;
	
@OneToMany(mappedBy="configuracaoBackup",cascade=CascadeType.ALL)	
private List<AgendaBackup> agendaBackups;

@OneToMany(mappedBy="configuracaoBackup",cascade=CascadeType.ALL)	
private List<PastaBackup> pastaBackups;

@OneToMany(mappedBy="configuracaoBackup",cascade=CascadeType.ALL)	
private List<BancoDados> bancosDados;

@Column(name="dirbkp1_cbk")
private String diretorioCopia1;

@Column(name="dirbkp2_cbk")
private String diretorioCopia2;

@Column(name="dirbkp3_cbk")
private String diretorioCopia3;

public ConfiguracaoBackup() {
}
// Getters and setters
}

Eae mano, a classe Page tem um método map que serve para fazer essa transformação, veja:

Page<ConfiguracaoBackup> configuracoes = service.findAll(page,count);
Page<ConfiguracaoBackupDto> configuracoesDto = configuracoes.map(c -> new ConfiguracaoBackupDto(c));

// Ou usando lambda
Page<ConfiguracaoBackupDto> configuracoesDto = configuracoes.map(ConfiguracaoBackupDto::new);

Nesse exemplo, estou supondo que há um construtor em ConfiguracaoBackupDto que recebe um ConfiguracaoBackup.

quando eu uso DTO, eu crio uma projection. E uso query nativa. Se voce esta usando o model para receber os dados via repository, no seu server tem que ter essa transformacao da lista que pegou do banco, para uma lista de objetos DTO. ai essa paginacao dara certo. Ou usa a solucao que foi data pelo Lucas.