1

如果你的 bean MyClass 有很多属性。

如果您想偷懒获得一处房产,@Basic( fetch=lazy)您需要对您的班级进行检测,对吗?

如果你在你的 bean 上做一个投影然后做​​一个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();

这就是诀窍。你只得到了 ID 而不是整个对象。

我的问题是。这个对象Usuario在查询缓存中是相同的,并且缓存就像我得到它一样.get()

图像你有另一个对象,你需要与 usuario 建立关系。

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

谢谢你。

4

0 回答 0