/**
* @TODO:查询某一年度的所有计划数量
*/
public int findCountByYear(String currYear) {
String hqlString = "select count(*) from WaterPlan as p where p.planYear ='"+currYear+"'";
Query query = this.getSession().createQuery(hqlString);
return ((Number)query.uniqueResult()).uniqueResult();
}
从Hibernate 3.0.x/3.1.x升级到最新的3.2版之后,3.2版的很多sql函数如count(), sum()的唯一返回值已经从Integer变为Long,如果不升级代码,会得到一个ClassCastException。
这个变化主要是为了兼容JPA,可以在hibernate.org的最新文档中找到说明。
Hibernate Team也提供了一个与原来兼容的解决方案:
Configuration classicCfg = new Configuration();
classicCfg.addSqlFunction( "count", new ClassicCountFunction());
classicCfg.addSqlFunction( "avg", new ClassicAvgFunction());
classicCfg.addSqlFunction( "sum", new ClassicSumFunction());
SessionFactory classicSf = classicCfg.buildSessionFactory();
或
//int count = ((Integer)query.uniqueResult()).intValue();
//改成
int count = ((Number)query.uniqueResult()).intValue();
//这样就可以两个版本同时兼容.
//参考代码
//第一种方法:
String hql = "select count(*) from User as user";
Integer count = (Integer)getHibernateTemplate().find(hql).listIterator().next();
return count.intValue();
//第二种方法:
String hql = "select count(*) from User as user";
return ((Integer)getHibernateTemplate().iterate(hql).next()).intValue();
//第三种方法:
String hql = "select count(*) from User as user";
Query query = getHibernateTemplate().createQuery( getSession(),hql);
return ((Integer)query.uniqueResult()).intValue();
分享到:
相关推荐
相当好的一份hibernate中文手册,网页版。目录清析
Hibernate连表查询 Hibernate连表查询
hibernate 中间表 希望给予新手帮助
Hibernate完整使用教程Hibernate完整使用教程Hibernate完整使用教程
Hibernate_query查询数据表中的一个字段.
hibernate多表联合查询实例,很经典的查询语句和总结.
* 注意:HQL中使用参数的方法: * 1.根据参数名称来设置参数:匹配名称; * 2.根据参数位置来设置参数:匹配位置; */ //根据参数名称来设置参数 Query query = session.createQuery("from UserManager u where u....
在hibernate中使用存储过程,调用存储过程
一般在项目开发过程中,使用比较多的就是先建好表,再利用hibernate反向工程生成*.hbm.xml文件跟POJO类,个人认为由于目前所使用的数据库都是关系数据库,而hibernate作为一个ORM,把对数据库的操作都对象化了,更...
通过此文档,您可快速从hibernate入门到掌握hibernte.文档中通过图文解说的方式教你hibernate需要导入那些jar包,hibernate配置文件怎么配,程序中如何进行调用等。
Hibernate(多对多表操作)
在spring中使用Hibernate是平时项目中很常用的做法,下面就具体步骤进行
Hibernate 多表连接分页查询示范项目 Hibernate Criteria 多表连接 分页
spring+hibernate整合实现简单数据库添加记录,适合初学spring的学员
hibernate_中文乱码hibernate_中文乱码hibernate_中文乱码hibernate_中文乱码hibernate_中文乱码hibernate_中文乱码
Eclipse上使用Hibernate synanize Eclipse上使用Hibernate synanize Eclipse上使用Hibernate Eclipse上使用Hibernate
tutorial压缩包里有Hibernate使用指南(tutorial),即开发者使用手册,内附大量example,有利于快速学习Hibernate
在Eclipse中使用Hibernate.pdf
代码中包含了Hibernate的使用的基本例子
hibernate 多表查询 hibernate 多表不同于一般的sql嵌套查询,嵌套查询是不支持的,所以必须要配置好才能实现多表!只要配置好了,还是特别好用的