¿Cómo puedo hacer paginación con las colecciones de @OneToMany?

Supongamos que tengo una entidad de publicación y una entidad de comentario y una relación de uno a muchos:

@Entity class Post {
    ...
    @OneToMany
    List<Comment> comments;
    ...
}

¿Cómo puedo lograr una paginación como esta?

Post post = //Find the post.
return post.getComments().fetch(100, 10); // Find the 11th page (page size 10);

¿Es posible emular la paginación dinámica con colecciones @OneToMany sobre JPA, o tenemos que reescribir totalmente el mecanismo de asociación de JPA? (por ejemplo, cree un tipo de colección PersistentList que pueda administrar la paginación, la clasificación y la búsqueda).

P.S .: Hace poco encontré Play! framework usa una lib muy interesante sobre JPA: Siena. Siena es muy fácil de usar y es una buena abstracción además de JPA / Hibernate. Pero no puedo encontrar cómo hacer paginación con sus asociaciones.

Actualizar:

Play Framework tiene una sintaxis de consulta similar a Django:

Post.findAll().from(100).fetch(10);  // paging

dónde

Post.findAll() 

devolverá un objeto JPAQuery, un tipo de consulta personalizada en Play.

Pero con colecciones asociadas, por ejemplo:

Post.comments

solo devolverá una Lista, que no admite paginación u otras consultas.

Me preguntaba cómo extenderlo, para que

Post.comments

también devolverá un objeto JPAQuery o similar, luego puede consultar en la colección "query":

Post.comments.from(100).fetch(10);

o inserte un nuevo comentario sin obtener ninguno de los comentarios:

Post.comments.add(new Comment(...));

En mi primer pensamiento, podríamos crear una subclase de Lista, luego la clase Post se convertiría en:

@Entity class Post {
    ...
    @OneToMany
    QueryList<Comment> comments;
    ...
}

y QueryList tendrá métodos fetch (), from () que son indirectos a los de JPAQuery.

Pero no sé si Hibernate / JPA lo reconocerá o interferirá.

Respuestas a la pregunta(2)

Su respuesta a la pregunta