Primefaces - datatable colunas dinamicas sem classe definida

Amigos, faço o upload de um arquivo CSV e realizo seu processamento. A quantidade de colunas do arquivo pode variar de acordo com quantidade de métricas coletadas, podendo ter uma métrica coletada até mais de 400 métricas.

DadosColetados.csv

ENTIDADE; Metrica 1; Metrica 2; Metrica 3;
E1;1;2;3
E2;4;5;6
E3;8;9;0


Após o processamento do CSV instancio três listas (ArrayList). A primeira, lista_entidades, contém objetos do tipo Entidade referente aos dados da primeira coluna do arquivo CSV. A segunda lista, lista_metricas, contém os objetos do tipo Metrica recuperados do BD segundo o nome das métricas lidos no CSV. A terceira lista_dados contém objetos do tipo Dado. Dado é utilizado para guardar uma referencia para uma Entidade e uma Métrica, além de armazenar o valor lido do CSV. Até aqui tudo funcionando perfeitamente.

O relacionamento é:

  • UMA Entidade possui MUITAS Métrica.
  • UMA Métrica possui MUITOS Dado.

class Entidade {

          Integer id;
          String nome;
          (....)
}

Class Metrica {
        Integer id;
        String nome;
        String contexto;
        (...)
}

class Dado {
          Metrica m;
          Entidade e;
          Double valor; 
          (....)
}

A pergunta é como eu consigo mostrar estes dados no primefaces utilizando o datatable. Tentei trabalhar com colunas dinâmicas mas não deu certo, pois eu não tenho uma classe que contenha definida todas as metricas como atributos para selecionar qual eu quero mostrar. Qual a melhor maneira de apresentar estes dados para o usuário dar apenas um OK na visualização dos dados? Parece básico, mas travei aqui.

Meu ManagedBean contém as três listas com os valores que preciso utilizar.