浏览 7703 次
锁定老帖子 主题:关于DetachedCriteria的问题
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-12-30
分页查询的时候,我会用这个DetachedCriteria先查询总记录个数 DetachedCriteria.setProjection(...); 查完之后我想再用这个DetachedCriteria查询对象列表 DetachedCriteria.setProjection(null); 这样能查到的不是我想要的对象列表. 我想问的是如何撤销一些对DetachedCriteria的操作,比如把Projection和Order等去掉,或者能够复制一个DetachedCriteria,一个用来count,一个用来list,但是DetachedCriteria没有实现Clonable,该怎么办? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-12-31
去掉Projection可以这样做
dc.setProjection(null); dc.setResultTransformer(CriteriaSpecification.ROOT_ENTITY); 但是去掉Order好像没办法,Order在内部是一个List列表,但是hibernate没有提供方法让我们获得这个List对象 |
|
返回顶楼 | |
发表时间:2005-12-31
在
http://forum.iteye.com/viewtopic.php?t=14657 的回帖中有提到 一般需要重置ResultTransformerdc.setResultTransformer( original resultTransformer before setProjection(...) ) 另外,order可以作为另外一个参数,在list的时候才加入,而不是已经设置在dc这个参数中了 |
|
返回顶楼 | |
发表时间:2005-12-31
目前Order,分页都是作为方法参数传进去的,感觉这样很别扭
Order,Projection应该在Criteria里面可以动态设置,而setFirstResult和setMaxResult应该在DetachedCriteria里面可以设置,不知道hibernate为什么不这样做,是不能这样做还是忘记这样做?看源码好像是后者 |
|
返回顶楼 | |