السمة خاصية كسول مع الإسقاطات

إذا كان لديك حبة MyClass الخاصة بك مع الكثير من الخصائص.

إذا كنت ترغب في الحصول على خاصية كسولة واحدة مع Basic (fetch = lazy) فأنت بحاجة إلى أن تقوم بصك صفك الصحيح؟

لكن

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

شيء من هذا القبيل:

 /*.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();

هذا لا الحيلة. لديك فقط معرف وليس الكائن بأكمله.

سؤالي هو. هذا الكائن من Usuario هو نفسه في ذاكرة التخزين المؤقت للاستعلام ، وذاكرة التخزين المؤقت كما لو أنني أحصل عليه .get() ؟

الصورة التي حصلت على كائن آخر والتي تحتاج إلى وضع علاقة مع usuario.

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

شكرا لكم.

1
لإنقاذ علاقة تعمل كالمعتاد ، ولكن إذا أردت الحصول على خاصية أخرى تكون asociation ممزوجة بـ Usuario مثل: usuario.getOtherObject() ، لا يمكن إجراء هذا ، التحميل غير قادر على الإسبات من قاعدة البيانات. لحل هذه تحتاج إلى تضمين الكائن asosiated في الإسقاط.
وأضاف المؤلف ics_mauricio, مصدر