Problemas com Ireport,JSF,Hibernate

Bom dia a todos :-o , bom estou tendo um um problema que julgo simples porem ainda não conseguir encontrar solução na internet. Vou desmotrar um pouco.
tenho uma classe “Arbitraria” que é uma classe de classes:

public class Arbitraria(){

private Medicamento medicamento = new Medicamento();
private Doenca doenca = new Doenca();
private Posologia posologia = new Posologia();
//mais classe aqui…

}

então uso a classe Arbitraria dentro de um ArrayList:
List alimentaListaRemedio = new ArrayList();

então alimento esse arrayList com as informações para cada classe atraves do rich:datatable que o usuario escolhe em tempo de execução dinamicamente:

Arbitraria arbitraria = new Arbitraria();

alimentaListaRemedio.add(arbitraria.medicamento.setNome(“x”));
isso dentro de um laço e assim sucessivamente.

Blz o problema vem agora estou fazendo um relatorio para impressao usando o ireport
nele eu trabalho com com as quatro classe fazendo Join delsa para o select e talz.
/// mais codigo aqui

JRBeancollectiondatasource fontesDados = new JRBeancollectiondatasource(alimentalistaDeRemedio);

porem como de alguma forma o ireport espera apenas uma classe e não uma classe de classe ele não consegue
encontra os campos que o select prescisa então lança varios erros dizendo que não pode encontra os fields.
1: Gostaria de Saber como fazer um select que envolver varias classes se entendido pelo ireport.
2:Como passa essa informaçõe para o Ireport um vez que elas não estão no banco de dados, por que são escolhida dinamicamente pelo usuario na aplicacao.
3:Se existir alguma forma de fazer isso de forma mais coerente.
Obrigado a todos espero que este problema ajude a mim e outros com duvida similar :slight_smile: .