Saudações,
Tenho encontrado em minhas buscas exemplos usando JRBeanCollectionDataSource ou JRBeanArrayDataSource mas sempre tendo suas EJBQL retornando um Bean, isto permite que o mapeamento dos fields do JasperReport se dê pelos nomes das propriedades, vejamos:
propriedade=textFields, ouja, se tiver um Bean a seguir:
public class Pessoa {
private String nome;
...
}
e fizer um EJBQL abaixo:
List listaNome = em.createQuery("select p from Pessoa p").getResultList();
posso mapear os campos com a proprieades do Bean da seguinte forma: autor=$F{autor}.
Mas como faria o mapeamento no caso de querer apenas algumas propriedades do Bean e não todo o Bean. Por exemplo:
List<Object[]> listaNome = em.createQuery("select p.id as id, p.nome as nome from Pessoa p").getResultList();
Se eu usar:
JRBeanCollectionDataSource sourcePessoa = new JRBeanCollectionDataSource(listaNome);
ou
JRBeanArrayDataSource sourcePessoa = new JRBeanArrayDataSource(listaNome.toArray());
e no relatório tentar obter os campos [color=green]$F{id}[/color] e [color=green]$F{nome}[/color] obtenho a exception:
Agradeço pela ajuda! Isto está atrasando minha tarefa.