1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Jasper Report + Classe com relacionamentos

Pessoal, tenho o seguinte quadro. Tenho a classe pessoa e uma pessoa pode ter vários enderecos cadastrados. Uma pessoa sem um Set endereco como atributo.

No meu pedaço de código referente ao Jasper segue abaixo.

JasperReport report = JasperCompileManager.compileReport( "/home/willian/Dropbox_willian_itauna_yahoo.com.br/Dropbox/NetBeansProjects/Java/Gestor Hibernate/Gestor/src/Relatorios/Funcionario/funcionario.jrxml" );
            JasperPrint print = JasperFillManager.fillReport( report, null, new JRBeanCollectionDataSource( pessoas ) );
            JasperExportManager.exportReportToPdfFile( print, "/home/willian/Dropbox_willian_itauna_yahoo.com.br/Dropbox/NetBeansProjects/Java/Gestor Hibernate/Gestor/src/Relatorios/Funcionario/funcionario.pdf" );

Bom, a minha pergunta é simples e direta. Como pode-se ver estou passando apenas uma lista de pessoas: List pessoas. QUando eu monto o relatório apenas com os fields de pessoa no iReport, da tudo certo, mas quando adiciono fields de Endereco - ex: cep - ele fala que o atributo não foi encontrado. E eu tenho uma lista de endereco Set endereco dentro de cada objeto pessoa. Será que alguém consegue me ajudar.

Vi alguns posts que fala o seguinte: crie uma classe modeloReports com os atributos que necessita, mas não vejo logica, pois volto na mesma situação. Essa classe teria os atributos de pessoas e uma lista de endereço. ENtão isso não resolve.

  • Esse seu Set é carregado como Lazy?

    fabio rene Mussi   11 de dez de 2014
  • é sim, porque ?

    Willian Rodrigues Andrade   11 de dez de 2014
  • Como você passou a collection como lazy ela não está carregada, por isso muitas pessoas indicam você ter uma classe de transporte para o report porque um simples get nesse seu set faria com que ele fosse carregado. O problema pode ser outra coisa mas tente passar a lista carregada pra o report.

    fabio rene Mussi   11 de dez de 2014
  • Alterei o lazy para eager mas o mesmo problema permanece.

    Willian Rodrigues Andrade   11 de dez de 2014
  • Só mais um comentário. ele está trazendo o endereço corretamente. Eu criei um for para imprimir no terminal a saída da Pessoa e imprimi junto o endereço para me certificar.

    Willian Rodrigues Andrade   11 de dez de 2014
Mostrar todos os 6 comentários>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags ireport jasperreports hibernate java ou faça a sua própria pergunta.