Como representar dados aninhados em uma tabela de dados Primefaces?

Aqui está meu modelo:

User.java

public class User {
   //...

   public List<User> getFriends() {
      // ...
   }
}

Eu gostaria de criar uma tabela de amigos de usuários assim:

users.jsf

+----------+------------+
|   USER   |   FRIENDS  |
+----------+------------+
|          |    ALICE   |
|          +------------+        
|   ADAM   |    BOB     |
|          +------------+
|          |    PITT    |
+----------+------------+
|          |            |
....

Como existem muitos usuários, não é possível descarregar a tabela de usuários de uma só vez.

O componente de tabela é ideal neste caso porque possui suporte de paginação integrado. É ideal também porque é possível classificar colunas ...

Infelizmente, não consegui encontrar nos exemplos do Primefaces uma maneira de mudar a fila de colunas do usuário.

Como posso construir essa tabela de dados?

Alguns outros OPs têm esse problema semelhante:

Primefaces / JSF Nested Data TableComo fazer um dataTable contendo uma subtabela com Primefaces na mesma linha? O que esta fazendo com o meu?Primefaces dataTable com rowspan... Adicione o seu?

EDITAR
Aqui estáa solução final eu vim para cima.

questionAnswers(5)

yourAnswerToTheQuestion