HQL Query:
select g from GnPrincipals g join fetch g.gnRolesCollection roles left join fetch g.gnPrincipalsUserTypesCollection userTypes WHERE g.id = :principalId