日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DetachedCriteria 分页Projection取消聚合条件

發布時間:2025/7/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DetachedCriteria 分页Projection取消聚合条件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@Override
??? public PageBean findPaginated(DetachedCriteria detachedCriteria,PageBean pageBean) {
?? ??? ?// TODO 今天記得修改 去掉DetachedCriteria中的projection
?? ??? ?//根據該條件獲得總記錄數
?????? Long total=this.getRowCount(detachedCriteria);
?????? List<T> datas=this.findByCriteria(detachedCriteria, pageBean.getOffset(), pageBean.getPageSize());
??????? pageBean.setDatas(datas);
??????? pageBean.setTotal(total);
?? ??? ?return pageBean;
??? }
???
?// 使用指定的檢索標準獲取滿足標準的記錄數
??? public Long getRowCount(final DetachedCriteria detachedCriteria) {
?? ??? ?return getHibernateTemplate().execute(new HibernateCallback() {
?? ??? ??? ?@Override
?? ??? ??? ?public Object doInHibernate(Session session)
?? ??? ??? ??? ??? ?throws HibernateException, SQLException {
?? ??? ??? ??? ?Criteria criteria=detachedCriteria.getExecutableCriteria(session);
?? ??? ??? ??? ?CriteriaImpl criteriaImpl=(CriteriaImpl) criteria;
?? ??? ??? ??? ?Projection projection=criteriaImpl.getProjection();
?? ??? ??? ??? ?logger.debug("SQL:"+Projections.rowCount());
?? ??? ??? ??? ?Long totalCount=(java.lang.Long) criteria.setProjection(Projections.rowCount()).uniqueResult();
?? ??? ??? ??? ?criteria.setProjection(projection);
?? ??? ??? ??? ?if(projection==null){
?? ??? ??? ??? ??? ?criteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY);
?? ??? ??? ??? ?}
?? ??? ??? ??? ?return totalCount;
?? ??? ??? ?}
?? ??? ?});

??? }


? public List findByCriteria(DetachedCriteria criteria, int firstResult,
??????????? int maxResults) {
??????? return getHibernateTemplate().findByCriteria(criteria, firstResult,
??????????????? maxResults);
??? }

這個問題糾結我好長時間,每次查詢出來總行數后,在查詢就不能查詢實體的信息了即使setProjectinos為null,但是查詢出來的結果在有關聯的情況下是List<Object[]>類型的

也就是說DetachedCriteria本身還是有問題,具體的原因我說不出來.但是這也是一種解決方案.希望對大家也有所幫助,

這樣就可以將DetachedCriteria進行封裝,在分頁條件下查詢總行數,




總結

以上是生活随笔為你收集整理的DetachedCriteria 分页Projection取消聚合条件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。