我最近第一次玩休眠标准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之间的联接。

10-08 20:13