Boa tarde pessoal estou tentando montar um <t:tree2> do MyFaces apartir de uma tabela que possui a seguinte estrutura:
CODIGO_FUNCIONALIDADE, CODIGO_PAI, DESCRICAO
Estou tentando montar um metodo recursivo aqui mas não estou tendo sucesso, alguém pode me dar uma sugestão de como devo fazer… 
public static void main(String[] args) {
TreeNode treeData = new TreeNodeBase("foo-folder", "Arvore", false);
TreeNodeBase personNode = new TreeNodeBase("person", "Modulo", false);
MontaArvore(personNode, Long.valueOf("0"));
}
public static void MontaArvore(TreeNodeBase node, Long pai) {
Session session = HibernateUtility.getSession();
Criteria criteria = session.createCriteria(Funcionalidade.class);
if (pai.equals(Long.valueOf("0"))) {
criteria.add(Expression.eq("codigoPai", Long.valueOf("0")));
} else {
criteria.add(Expression.eq("codigoPai", pai));
}
Iterator it = criteria.list().iterator();
while (it.hasNext()){
MontaArvore(null, ((Funcionalidade)it.next()).getCodigoPai());
}
}