Hibernare proprietate leneș cu proiecții

Dacă aveți fasole MyClass cu multe proprietăți.

Dacă doriți să obțineți leneș o proprietate cu @Basic (fetch = leneș) trebuie să instrumentați clasa corect?

dar

what if you do a projection over your bean and then do a ResultTransformer(TransFormers.aliasToBean(MyClass.class))

Ceva de genul:

 /*.get(Usuario.class, 1); this gets the wholeobject with out @Basic(fetch=lazy)*/
     Usuario usuario = (Usuario) session 
    .createCriteria(Usuario.class)
    .add(Restrictions.eq("id", 1))
    .setProjection(Projections.projectionList()
    .add(Projections.property("id").as("id")))
           .setResultTransformer(Transformers.aliasToBean(Usuario.class))
    .uniqueResult();

Asta face trucul. Ai doar ID-ul și nu întregul obiect.

Intrebarea mea este. Acest obiect de Usuario este același în memoria cache a interogării și cache-ul ca și când l-am primit cu .get() ?

Imaginea că ai un alt Obiect și că trebuie să ai o relație cu usuario.

  //projected Usuario object
   AnotherObject.setUsuario(usuario);
  //this works okay, dar its correct?

Mulțumesc.

1
Pentru a salva o relație funcționează ca normal, dar apoi dacă doriți să obțineți o altă proprietate care este o asociație cu Usuario, cum ar fi: usuario.getOtherObject (), acest cant se face, hibernare load cant din baza de date. Pentru a rezolva această necesitate u trebuie să includeți obiectul asocit în proiecție.
adăugat autor ics_mauricio, sursa