如果你的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?
谢谢。