Boa tarde Sr(a)s !
Estou enfrentando um problema ao passar a minha fonte de dados para o iReport. Estou usando JPA. Todos os campos mapeados não apresentam problema. Ocorre que existe um atributo da minha classe como Transiente e que antes de passar a lista como fonte de dados para o meu relatório preencho o atributo Transiente (que é um lista de uma outra classe). Até aí tudo bem . Porém o relatório não é exibido. O campo no iReport está com o atributo “Field Class” como java.util.List setado. Abaixo o código
Entidade Trabalho
@Column(name = "DT_FINAL")
@Temporal(javax.persistence.TemporalType.DATE)
private Date dtFinal;
@ManyToOne
@JoinColumn(name = "ID_ELEICAO")
private Eleicao eleicao;
@Transient
private List<Tecnico> tecnicos;
public List<Tecnico> getTecnicos() {
return tecnicos;
public void setTecnicos(List<Tecnico> tecnicos) {
this.tecnicos = tecnicos;
}
}
Bean que alimenta os atributos transientes
public List<Trabalho> getListaTrabalhoRel() {
for (Trabalho item : getListaTrabalho()){
item.setTecnicos(servicoTecnicoService.buscarTecnicosTrabalho(item));
}
return listaTrabalho;
}
Trecho do Bean onde chamo o relatório e informo a fonte de dados, no caso um lista.
parametros.put("ROOT_DIR", ctx.getRealPath(""));
//cria uma fonte de dados para coleções
JRBeanCollectionDataSource fonteDados = new JRBeanCollectionDataSource(getListaTrabalhoRel());
//envia para o navegador o PDF gerado
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, parametros, fonteDados);
servletOutputStream.flush();
servletOutputStream.close();
Se removo o campo “tecnicos.nomeCompleto” do IReport o relatório é exibido corretamente.
Como disse anteriormente o campo no iReport esta com o atributo “Field Class” como java.util.List setado e está nomeado como :
“tecnicos.nomeCompleto”. -------->(.nomeCompleto) atributo da Classe Tecnico.
|------------> Atributo transiente da entidade Trabalho
Onde estou errando ?
[]s