3

我最近第一次使用hibernate Criteria 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 但这似乎不是正确的事情。任何人都知道如何在标准中正确执行上述操作并像 HQL 一样获得非代理?

谢谢。

4

1 回答 1

0

尝试在任务类和 userTbl 之间强制加入。

于 2009-10-14T13:36:08.327 回答