Listar dados de um array de objetos em um relatório Jaspersoft

Ola bom dia! estou tentando imprimir um relatorio master detalhe em na minha classe principal OrdemServico existe uma propiedade servicos do tipo array list que uma objeto da classe Servico gostaria de listar esses servicos dentro do relatorio mas naum estou conseguindo sempre dah um erro: java.lang.ClassCastException: class org.hibernate.collection.internal.PersistentBag cannot be cast to class com.os.api.model.Servico (org.hibernate.collection.internal.PersistentBag is in unnamed module of loader ‘app’; com.os.api.model.Servico is in unnamed module of…

segues o codigos…
@Entity
@Table(name = “ordem_servico”)
public class OrdemServico {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long os;

@NotNull
@ManyToOne
@JoinColumn(name = "id_pessoa")
private Pessoa pessoa;

@NotNull
@ManyToOne
@JoinColumn(name = "id_categoria")
private Categoria categoria;

@NotNull
@ManyToOne
@JoinColumn(name = "id_status")
private Status status;

@Valid
@JsonIgnoreProperties("ordemServico") // nome da propiedade ordemServico da classe Servico
@OneToMany(mappedBy = "ordemServico", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Servico> servicos;

@NotBlank
@Size(min = 5)
private String equipamento;

private String descricao; 

@NotBlank
private String defeito;

@NotNull
@Column(name = "data_recebimento")
private LocalDate dataRecebimento;

@Column(name = "data_entrega")
private LocalDate dataEntrega;

private BigDecimal valor;

@Column(name = "laudo_tecnico")
private String laudoTecnico;

private String garantia;


public Long getOs() {
	return os;
}

public void setOs(Long os) {
	this.os = os;
}

public Pessoa getPessoa() {
	return pessoa;
}

public void setPessoa(Pessoa pessoa) {
	this.pessoa = pessoa;
}

public Categoria getCategoria() {
	return categoria;
}

public void setCategoria(Categoria categoria) {
	this.categoria = categoria;
}

public List<Servico> getServicos() {
	return servicos;
}

public void setServicos(List<Servico> servicos) {
	this.servicos = servicos;
}

public String getEquipamento() {
	return equipamento;
}

public void setEquipamento(String equipamento) {
	this.equipamento = equipamento;
}

public String getDescricao() {
	return descricao;
}

public void setDescricao(String descricao) {
	this.descricao = descricao;
}

public String getDefeito() {
	return defeito;
}

public void setDefeito(String defeito) {
	this.defeito = defeito;
}

public Status getStatus() {
	return status;
}

public void setStatus(Status status) {
	this.status = status;
}

public LocalDate getDataRecebimento() {
	return dataRecebimento;
}

public void setDataRecebimento(LocalDate dataRecebimento) {
	this.dataRecebimento = dataRecebimento;
}

public LocalDate getDataEntrega() {
	return dataEntrega;
}

public void setDataEntrega(LocalDate dataEntrega) {
	this.dataEntrega = dataEntrega;
}

public BigDecimal getValor() {
	return valor;
}

public void setValor(BigDecimal valor) {
	this.valor = valor;
}

public String getLaudoTecnico() {
	return laudoTecnico;
}

public void setLaudoTecnico(String laudoTecnico) {
	this.laudoTecnico = laudoTecnico;
}

public String getGarantia() {
	return garantia;
}

public void setGarantia(String garantia) {
	this.garantia = garantia;
}

public byte[] relatorioDeOS(Long id) throws Exception {

	List<OrdemServico> dados = this.ordemServicoRepos.relatorioDeOs(id);
	
	Map<String, Object> parametros = new HashMap<String, Object>();
	//parametros.put("DT_INICIO", Date.valueOf(dataInicio));
	//parametros.put("DT_FIM", Date.valueOf(dataFim));
	parametros.put("ID_OS", id);
	parametros.put("REPORT_LOCALE", new Locale("pt", "BR"));
	
	InputStream inputStream = this.getClass().getResourceAsStream("/relatorios/ordem-servicos-pessoas.jasper");
	
	JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, parametros, 
			new JRBeanCollectionDataSource(dados));
	
	return JasperExportManager.exportReportToPdf(jasperPrint);
	
}

@RestController
@RequestMapping("/ordem-servicos")
public class OrdemServicoResource {

@Autowired
private OrdemServicoRepository ordemServicoRepos;

@Autowired
private OSService osService;


@GetMapping("/relatorios/os/por-pessoas")
@PreAuthorize("hasAuthority('ROLE_PESQUISAR_OS') and #oauth2.hasScope('read')")
public ResponseEntity<byte[]> pesquisarOs(@RequestParam Long id) throws Exception {
	
	byte[] relatorio = this.osService.relatorioDeOS(id);
	
	return ResponseEntity.ok().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_PDF_VALUE)
		.header("Content-Disposition", "attachment", "filename=RelatorioDeOs.pdf")
		.body(relatorio);
}