jpa entidades de recuperación diferida en varios niveles con criterios api

Estoy usando JPA2 con su API de Criterios para seleccionar mis entidades de la base de datos. La implementación es OpenJPA en WebSphere Application Server. Todas mis entidades están modeladas con Fetchtype = Lazy.

Selecciono una entidad con algunos criterios de la base de datos y quiero cargar todos los datos anidados de las subtablas a la vez. Si tengo un modelo de datos donde la tabla A se une oneToMany a la tabla B, puedo usar una cláusula Fetch en mi consulta de criterios:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<A> cq = cb.createQuery(A.class);
Root<A> root = cq.from(A.class);
Fetch<A,B> fetch = root.fetch(A_.elementsOfB, JoinType.LEFT);

Esto funciona bien. Obtengo un elemento A y todos sus elementos de B están llenos correctamente. Ahora la tabla B tiene una relación oneToMany con la tabla C y también quiero cargarlos. Entonces agrego la siguiente declaración a mi consulta:

Fetch<B,C> fetch2 = fetch.fetch(B_.elementsOfC, JoinType.LEFT);

Pero esto no hará nada.

Alguien sabe cómo obtener entidades de varios niveles en una consulta?

Respuestas a la pregunta(2)

Su respuesta a la pregunta