我最近第一次使用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 一样获得非代理?
谢谢。