Allora supponiamo che tu hai un entity "Maestra" che ha una relazione uno-a-molti (oneToMany) con l'entity "Alunni" (una maestra insegna in più classi quindi gli alunni sono molti).
Supponi di voler trovare il nome della Maestra di cognome Rossi, scriverai + o - questa query
codice:
SELECT M from Maestra M where M.cognome = :cognome
Se la relazione alunni è LAZY allora hibernate effettuerà esattamente la query cosi com'è
Se la relazione invece è EAGER allora farà, in base al FetchStrategy impostato, ho una seconda query :
codice:
Select A.* from Maestra M, Alunni A where A.maestraId = M.id and M.id = <id che viene fuori dalla prima select>
per valorizzare la relazione oppure un join cioè:
codice:
SELECT M,A from Maestra M,Allunni A where M.cognome = :cognome and A.maestraId = M.id
quindi in poche parole tutte le proprietà e relazioni EAGER vengono valorizzate a prescindere dalla query che stai effettuando.