You can load children by calling getter method only if the parent object is attached to session. You can attach an object to session through either loading it (what calling refresh
does on above code) or saving or updating; see documentation for more explanation. Like following code:
Session s = getSession();
Parent parent = s.get(parent, id);
List children = parent.getChildren();
And doing this basically is same as using criteria API (the way you have used). Criteria and HQL are used for a big variety of other things. In your case there is no point on using them.