Hola titocba. Yo conozco 2 formas de hacerlo:
- Forma 1: Modificar manualmente el archivo de mapeo .xml e indicarle lazy = false.
Ventaja: Te olvidas del problema porque cuando te trae el abuelo te trae hasta los nietos siempre.
Desventajas: Te tenés que acordar siempre de modificar los archivos .xml cada vez que mapeas de nuevo la BD. Va a traer siempre los nietos, aún cuando no los necesites, generando esto un costo adicional de memoria y tiempo.
- Forma 2: A demanda. Cuando levantas el abuelo con "get", luego de traerlo ejecutas la siguiente sentencia:
Código Javascript
:
Ver originalHibernate.initialize(abuelo.getHijos());
Y si esto no alcanzara, agrega otra parecida dentro de un for: para todos los hijos, inicializar los nietos, algo así:
Código Javascript
:
Ver originalfor (Hijos hijo : abuelo.getHijos())
Hibernate.initialize(hijo.getNietos());
A mí me parece mejor la forma 2, con initialize(), ya que lo que hace es traerlo cuando realmente lo necesitas y no siempre.
Espero haber sido de ayuda. Suerte !