我最近第一次玩休眠标准API。
我正在尝试做等效的HQL
“从任务t中选择t.userTbl”
userTbl属性是Task中的多对一属性。 Task.userTbl关系是惰性的。
所以我想出了这个
Criteria criteria = session.createCriteria( Task.class, "t" );
criteria.setProjection( Projections.property( "t.userTbl" ) );
List results = criteria.list();
不幸的是,这与HQL有所不同。
在HQL中,尽管在映射中将userTbl关系设置为惰性,但HQL会急切获取并实现UserTbl的非代理对象。
但是在“条件”中,我得到了我不想要的代理列表。我摆弄了setFetchMode,但这似乎不是正确的事情。任何人都有任何想法如何在Criteria中正确执行上述操作,并像HQL一样取回非代理?
谢谢。
最佳答案
尝试强制任务类和userTbl之间的联接。