大大们,求个hibernate DetachedCriteria分组查询

xb12369 2013-03-05 11:35:44
目标sql是这样的:
select  toolName ,count(*) as c from Km_Toolclick_Cnt where 1=1 group by toolName;


现在换成这样的写法:

DetachedCriteria dc = DetachedCriteria.forClass(KmToolclickCnt.class);
if(!ValidateUtils.isEmpty(toolbarclick.getToolName())){
dc.add(Restrictions.ilike("toolName", toolbarclick.getToolName()));
}
if(!ValidateUtils.isEmpty(beginDate)){
dc.add(Restrictions.gt("goTime", beginDate));
}
if(!ValidateUtils.isEmpty(endDate)){
dc.add(Restrictions.lt("goTime", endDate));
}

//dc.setProjection(Property.forName("toolName").group());
dc.setProjection(Projections.alias(Projections.groupProperty("toolName"),"toolName"));
//dc.setProjection(Projections.alias(Projections.rowCount(),"count"));
...全文
405 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bywinkey 2015-08-10
  • 打赏
  • 举报
回复
后面怎么处理的啊,我也遇到同样的问题,楼主能不能贴上来 分享下
xb12369 2013-03-05
  • 打赏
  • 举报
回复
引用 1 楼 ljc19901124 的回复:
不知其他人是怎么样,反正我是没看明白你想干什么的?
可能是DetachedCriteria ,公司包装的 网上一般直接就是:Criteria
DetachedCriteria dc = DetachedCriteria.forClass(KmToolclickCnt.class);
等同于
select * from km_toolclick_cnt
俺等啊 等
爱T 2013-03-05
  • 打赏
  • 举报
回复
不知其他人是怎么样,反正我是没看明白你想干什么的?
xb12369 2013-03-05
  • 打赏
  • 举报
回复
引用 9 楼 proteinboy007 的回复:
引用 8 楼 xb12369 的回复:引用 7 楼 proteinboy007 的回复:引用 6 楼 xb12369 的回复:引用 5 楼 proteinboy007 的回复:DetachedCriteria dc = DetachedCriteria.forClass(KmToolclickCnt.class);
if(!ValidateUtils.i……




我看到报错了,我以为时没有.add,这里
.add( Projections.groupProperty("toolName")).list();   //2

报错




ps:谢谢大大的一路跟帖
这里我换了中写法,实现了我要的效果!那么这里做为homework后面去研究,谢谢!
proteinboy 2013-03-05
  • 打赏
  • 举报
回复
引用 8 楼 xb12369 的回复:
引用 7 楼 proteinboy007 的回复:引用 6 楼 xb12369 的回复:引用 5 楼 proteinboy007 的回复:DetachedCriteria dc = DetachedCriteria.forClass(KmToolclickCnt.class); if(!ValidateUtils.isEmpty(toolbarclick……
import org.hibernate.criterion.DetachedCriteria; 这个是我的
xb12369 2013-03-05
  • 打赏
  • 举报
回复
引用 7 楼 proteinboy007 的回复:
引用 6 楼 xb12369 的回复:引用 5 楼 proteinboy007 的回复:DetachedCriteria dc = DetachedCriteria.forClass(KmToolclickCnt.class); if(!ValidateUtils.isEmpty(toolbarclick.getToolName())){ ……
能不能说一下是什么命名空间额?
proteinboy 2013-03-05
  • 打赏
  • 举报
回复
引用 6 楼 xb12369 的回复:
引用 5 楼 proteinboy007 的回复:DetachedCriteria dc = DetachedCriteria.forClass(KmToolclickCnt.class);
if(!ValidateUtils.isEmpty(toolbarclick.getToolName())){
dc.setProject……


难道我这是???
xb12369 2013-03-05
  • 打赏
  • 举报
回复
引用 5 楼 proteinboy007 的回复:
DetachedCriteria dc = DetachedCriteria.forClass(KmToolclickCnt.class); if(!ValidateUtils.isEmpty(toolbarclick.getToolName())){ dc.setProjection(Projections.rowCount(……
大大的答案让我眼前一亮,3s后我失望了!
.add是Criteria的,不是DetachedCriteria的!
任然谢谢!
proteinboy 2013-03-05
  • 打赏
  • 举报
回复
DetachedCriteria dc = DetachedCriteria.forClass(KmToolclickCnt.class); if(!ValidateUtils.isEmpty(toolbarclick.getToolName())){ dc.setProjection(Projections.rowCount()) //1 .add( Projections.groupProperty("toolName")).list(); //2 } 这样你试试,1是统计count(*) 2是根据"toolName"分组
  • 打赏
  • 举报
回复
这样试下呢 DetachedCriteria dc = DetachedCriteria.forClass(KmToolclickCnt.class); dc.setProjection(Property.forName("toolName").group()); 据说貌似是个bug
yiyixinggu 2013-03-05
  • 打赏
  • 举报
回复
dc.addOrder(Order.desc("toolName"));

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧