Gerar relatorio iReport utilizando datasource

Bom dia pessoal,

eu estou tentando como eu vou gerar um relatorio que possui mais de uma entidade, ou seja, eu vou enviar o parametro dentro de um hasmap, mas pelo que eu saiba, só iria da certo se fosse a mesma entidade. Como eu vou fazer para enviar se for mais de uma entidade?

Exemplo do meu método:


	ReportUtil reportUtil = new ReportUtil(param,
					"/relatorio/jasper/listaUsuario.jasper",
					listAuxUsuario, "relatorio.pdf");
			saida = reportUtil.geraRelatorio();

Bem, qual é o meu problema. O outro relatorio que eu preciso gerar, ele não possui apenas "listaUsuario" como resultado, eu teria que ter listaDocumentos, listaBoletos… etc …

alguem teria ideia de como eu faria?

Aqui estão alguns métodos utilizado para gerar o relatorio:

construtor padrão da classe ReportUtil:


public ReportUtil(Map map, String pathArquivo, Collection<?> collection, String pathSaida) {
		this.map = map;
		this.pathArquivo = pathArquivo;
		this.collection = collection;
		this.pathSaida = pathSaida;
		this.getContexto();
	}

método para gerar o relatorio


public String geraRelatorio() {
		String result = null;
		FacesMessage facesMessage = null;
		try {
			datasource = new JRBeanCollectionDataSource(collection);
			jasperPrint = JasperFillManager.fillReport(getDiretorioReal(pathArquivo), map, datasource);
			JasperExportManager.exportReportToPdfFile(jasperPrint,getDiretorioReal(pathSaida));
			result = getContextPath() +"/"+ pathSaida;
			System.out.println("----Relatório arquivo .pdf gerando----");
		} catch (JRException e) {
			e.printStackTrace();
			facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR,e.getMessage(),"");
			FacesContext.getCurrentInstance().addMessage("", facesMessage);
		}catch (Exception e) {
			e.printStackTrace();
			facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR,e.getMessage(),"");
			FacesContext.getCurrentInstance().addMessage("", facesMessage);
		}
		//FacesContext.getCurrentInstance().addMessage("", facesMessage);
		return result;
	}