Hibernate的查询 标准(Criteria)查询 聚合和分组
2012-09-11 22:59
435 查看
记录数查询很简单:
Java代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
Criteria crit = session.createCriteria(User.class);
crit.setProjection(Projections.rowCount());
int v = (Integer)crit.uniqueResult();
但是要注意,setProjection方法只是最后一次有效。就是说你可以多次使用这个方法,但是后一次操作将覆盖前一次的聚合操作。
Java代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
Criteria crit = session.createCriteria(User.class);
crit.setProjection(Projections.rowCount());
int value = (Integer)crit.uniqueResult();
System.out.println(value);
crit.setProjection(Projections.max("id"));
value = (Integer)crit.uniqueResult();
System.out.println(value);
crit.setProjection(Projections.sum("id"));
value = (Integer)crit.uniqueResult();
System.out.println(value);
以上就会执行三次查询操作,分别执行的SQL为:
Sql代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
select count(*) from user
select max(id) from user
select sum(id) from user
如果要设置多个聚合操作,请查看如下示例:
Java代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
ProjectionList proList = Projections.projectionList();
proList.add(Projections.rowCount());
proList.add(Projections.max("id"));
proList.add(Projections.sum("id"));
crit.setProjection(proList);
List results = crit.list();
Object[] arr = (Object[])results.get(0);
for(Object ob : arr){
System.out.println(ob.toString());
}
上面执行一条SQL:
Sql代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
select count(*),max(id),sum(id) from user
如果你看Projections这个类的话也也有看到分组的方法:
Java代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
Criteria crit = session.createCriteria(User.class);
crit.setProjection(Projections.rowCount());
crit.setProjection(Projections.groupProperty("name"));
List results = crit.list();
Object[] arr = null;
for(int i=0;i<results.size();i++){
arr = (Object[])results.get(i);
for(Object ob : arr){
System.out.print(ob.toString());
}
System.out.println();
}
以上会执行SQL:
Sql代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
select count(*) from user group by name
原文: /article/3770525.html
Java代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
Criteria crit = session.createCriteria(User.class);
crit.setProjection(Projections.rowCount());
int v = (Integer)crit.uniqueResult();
但是要注意,setProjection方法只是最后一次有效。就是说你可以多次使用这个方法,但是后一次操作将覆盖前一次的聚合操作。
Java代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
Criteria crit = session.createCriteria(User.class);
crit.setProjection(Projections.rowCount());
int value = (Integer)crit.uniqueResult();
System.out.println(value);
crit.setProjection(Projections.max("id"));
value = (Integer)crit.uniqueResult();
System.out.println(value);
crit.setProjection(Projections.sum("id"));
value = (Integer)crit.uniqueResult();
System.out.println(value);
以上就会执行三次查询操作,分别执行的SQL为:
Sql代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
select count(*) from user
select max(id) from user
select sum(id) from user
如果要设置多个聚合操作,请查看如下示例:
Java代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
ProjectionList proList = Projections.projectionList();
proList.add(Projections.rowCount());
proList.add(Projections.max("id"));
proList.add(Projections.sum("id"));
crit.setProjection(proList);
List results = crit.list();
Object[] arr = (Object[])results.get(0);
for(Object ob : arr){
System.out.println(ob.toString());
}
上面执行一条SQL:
Sql代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
select count(*),max(id),sum(id) from user
如果你看Projections这个类的话也也有看到分组的方法:
Java代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
Criteria crit = session.createCriteria(User.class);
crit.setProjection(Projections.rowCount());
crit.setProjection(Projections.groupProperty("name"));
List results = crit.list();
Object[] arr = null;
for(int i=0;i<results.size();i++){
arr = (Object[])results.get(i);
for(Object ob : arr){
System.out.print(ob.toString());
}
System.out.println();
}
以上会执行SQL:
Sql代码
![](http://cuisuqiang.iteye.com/images/icon_star.png)
select count(*) from user group by name
原文: /article/3770525.html
相关文章推荐
- Hibernate的查询 标准(Criteria)查询 聚合和分组
- Hibernate的查询 标准(Criteria)查询 聚合和分组
- Hibernate的查询 标准(Criteria)查询 聚合和分组
- Hibernate的查询 标准(Criteria--Projections)查询----- 聚合和分组
- (3) Hibernate的查询 标准(Criteria)查询
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序
- Hibernate的查询 标准(Criteria)查询
- Hibernate的查询 标准(Criteria)查询
- 请教一下hibernate中的criteria分组查询语句报类转换错误,出了什么问题?
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序
- Hibernate的查询 标准(Criteria)查询
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序
- Hibernate条件查询(DetachedCriteria)
- Hibernate4之Criteria接口QBC方式查询
- Hibernate中createCriteria即QBC查询的详细用法
- Hibernate使用Criteria实现查询
- crm使用FetchXml分组聚合查询
- Hibernate-Criteria查询(3)DetachedCriteria构造查询条件、命名查询、原生SQL、调用存储过程(使用JDBC)
- 应用Hibernate3的DetachedCriteria实现分页查询