使用Hibernate的sum函数进行数据的统计时,出现一个错误:
代码:
String sql = "select SUM(nf.fee) from CFee as nf where nf.adminAccount='testaccount' ";
public long getListSqlCountsLong(String sql) {
beginTransaction();
List li = getSession().createQuery(sql).list();
if (li == null || li.isEmpty()) {
return 0;
} else { return ((Integer) li.get(0)).longValue();
}
}
这样使用报null错误.
List的size明明等于1,但li.get(0)还是为空.(数据库中查询的账号sum本来就为null??可能是.)
解决方法:
String sql = "select SUM(nf.fee) from CFee as nf where nf.adminAccount='testaccount' ";
public long getListSqlCountsLong(String sql) {
beginTransaction();
List li = getSession().createQuery(sql).list();
if (li == null || li.isEmpty()) {
return 0;
} else {
if (li.get(0) == null) {
return 0;
}
return ((Integer) li.get(0)).longValue();
}
}
解决方法很简单,就是增加一个判断就可以了,如果li.get(0)为空,则返回0,不为空,返回值.
分享到:
相关推荐
本篇主要探讨的是Hibernate对数据库查询中聚合函数的应用,这些功能使我们能够高效地处理数据统计和汇总任务。在学习过程中,我们经常会遇到诸如求和(SUM)、平均值(AVG)、最大值(MAX)、最小值(MIN)以及计数...
1. **Hibernate的数学函数**:如`max()`, `min()`, `sum()`, `avg()`和`count()`,它们用于对数据进行聚合操作,例如找出最大值、最小值、总和或平均值。 2. **字符串函数**:如`concat()`, `lower()`, `upper()`和...
### NHibernate HQL 可用函数详解 #### 一、查询基本语法与示例 ...以上是NHibernate HQL查询语言的基本使用方法及相关内置函数的详细介绍。通过这些示例,你可以更好地理解和应用HQL来完成数据库操作任务。
**Hibernate Criteria 完全使用详解** Hibernate Criteria API 是 Hibernate 框架中一个强大的查询工具,它提供了一种面向对象的方式来构建SQL查询,使得开发者无需直接编写SQL语句,即可进行复杂的数据库操作。...
- 使用`SUM()`函数来计算每个顾客在指定时间段内的消费总额。 - `GROUP BY`子句按顾客ID分组结果集。 #### 五、Native SQL实现多表联合查询 有时候,我们可能需要执行一些更复杂的SQL查询,这时可以使用Hibernate的...
- **聚合查询**:使用函数如COUNT、AVG、MAX、MIN、SUM进行统计计算。 - **分组查询**:根据一个或多个属性对结果进行分组。 - **排序查询**:通过ORDER BY子句对结果进行排序。 - **关联查询**:处理一对多、一...
HQL还支持聚合函数,如`COUNT`、`MAX`、`MIN`、`AVG`和`SUM`,以及排序`ORDER BY`和分组`GROUP BY`等特性。另外,HQL也提供了`IN`、`BETWEEN`、`LIKE`等比较操作符,以及`AND`、`OR`、`NOT`逻辑运算符。 对于更高级...
HQL和Criteria API支持投影(如选择特定字段)和聚合函数(如COUNT, SUM, AVG等): ```java // 使用HQL String hql = "SELECT COUNT(*) FROM Student"; Long count = (Long) session.createQuery(hql)....
Hibernate Criteria 是一种在Java应用程序中使用Hibernate ORM框架执行SQL查询的方式。它提供了一种面向对象的方式来构建查询,使得代码更加可读和易于维护。Criteria API 提供了多种方法来构建复杂的查询,包括添加...
HQL还支持一些内置函数,如`count`, `max`, `min`, `avg`, `sum`等,以及`GROUP BY`和`HAVING`子句进行聚合操作。 综上所述,Hibernate提供了丰富的查询功能,使开发者能够灵活地处理数据库操作,同时保持代码的...
投影用于获取特定列,而聚合函数(如COUNT, SUM, AVG等)用于统计。例如: ```java // HQL query = session.createQuery("select count(u) from User u"); // Criteria ProjectionList projections = ...
- 聚集函数:HQL支持SUM、COUNT、AVG等聚合操作。 - 分页查询:通过设置firstResult和maxResults实现分页。 - 异构查询:支持不同类型的对象混合查询。 通过深入学习和实践,开发者能够熟练掌握Hibernate,提高项目...
HQL 支持常见的聚合函数,如 `avg()`、`sum()`、`min()`、`max()` 和 `count(*)` 等,用于处理结果集中的数据。 ```hql select avg(employee.Salary) from Employee as employee ``` 这条语句计算所有员工的平均...
4. **分组和聚合**:可以使用GROUP BY和HAVING子句对查询结果进行分组和聚合操作,如COUNT(), SUM(), AVG(), MAX(), MIN()等。 5. **排序**:ORDER BY子句用于对查询结果进行排序,可以指定排序方向(ASC或DESC)。 ...
4. **分组与聚合**:使用GROUP BY和聚合函数(COUNT, SUM, AVG, MAX, MIN),例如`select e.dept, count(e) from Employee e group by e.dept`。 5. **连接查询**:通过JOIN关键字,可以执行关联查询,例如`from ...
HQL也支持分组和聚合函数,如`count`, `sum`, `avg`, `max`, `min`: ```java query = session.createQuery("select c.country, count(c) from Customer c group by c.country"); List[]> countryCounts = query....
HQL还支持聚合函数,如COUNT、SUM、AVG、MAX和MIN,可用于计算总数、平均值等。例如,找出用户数量: ```sql SELECT COUNT(u) FROM User u ``` 同时,HQL支持分组和排序。通过GROUP BY子句对数据进行分类,通过...
4. **聚合函数**:HQL支持各种聚合函数,如`AVG()`、`SUM()`、`MIN()`、`MAX()`、`COUNT(*)`等,用于执行分组统计等操作。 ### HQL查询语法详解 #### 1. 连接查询 HQL中的连接查询可以通过`JOIN`关键字实现。例如...
- 统计函数:执行如 COUNT、SUM 等聚合函数。 #### 六、如何优化 Hibernate **优化策略**: 1. 使用双向一对多关联,避免使用单向一对多。 2. 灵活运用单向一对多关联。 3. 不使用一对一关联,用多对一代替。 4. ...
3. **聚合函数**: 可以使用`count()`, `sum()`, `max()`, `min()`, `avg()`等聚合函数进行统计分析。 4. **关联查询**: 支持`join`操作,处理多对一、一对多、多对多的关系。 通过本讲义的学习,开发者将能够熟练...