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