首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

大大们,求个hibernate DetachedCriteria分组查询,该如何解决

2013-03-06 
大大们,求个hibernate DetachedCriteria分组查询目标sql是这样的:selecttoolName ,count(*) as c from Km_

大大们,求个hibernate DetachedCriteria分组查询
目标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"));
hibernate sql
[解决办法]
不知其他人是怎么样,反正我是没看明白你想干什么的?
[解决办法]
dc.addOrder(Order.desc("toolName"));
[解决办法]
这样试下呢
DetachedCriteria dc = DetachedCriteria.forClass(KmToolclickCnt.class);
dc.setProjection(Property.forName("toolName").group());

据说貌似是个bug
[解决办法]
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"分组   

热点排行