¿Cómo representar datos anidados en una base de datos de Primefaces?

Aquí está mi modelo:

Usuario.java

public class User {
   //...

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

Me gustaría construir una tabla de usuarios amigos así:

usuarios.jsf

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

Como hay muchos usuarios, no es posible volcar la tabla de usuarios de una sola vez.

El componente de datos es ideal en este caso porque tiene soporte de paginación incorporado. Es ideal también porque es posible ordenar columnas ...

Desafortunadamente, no pude encontrar en los ejemplos de Primefaces una forma de cambiar el intervalo de filas en las columnas de usuarios.

¿Cómo puedo construir este datatable?

Algún otro OP que tiene este problema similar:

Primefaces / tabla de datos anidados JSF¿Cómo hacer una tabla de datos que contenga una subtabla con Primefaces en la misma fila? ¿Qué está haciendo con el mío?Tabla de datos de Primefaces con rowpan... agregar el tuyo?

EDITAR
Aquí estála solución final se me ocurrió.