int count = ((Integer)query.uniqueResult()).intValue(); 出错

int count = ((Integer)query.uniqueResult()).intValue(); 出错Java代码 //intcount=((Integer)query.uniqueResult()).intValue();  //改成    intcount=((Number)query.uniqueResult()).intValue();    Java代码  publicintfindCountByYear(Stringcu

Java代码  

//int count = ((Integer)query.uniqueResult()).intValue();   

//改成   

  

int count = ((Number)query.uniqueResult()).intValue();  

 

 

Java代码  

 

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也提供了一个与原来兼容的解决方案:

Java代码  

Configuration classicCfg = new Configuration();   

classicCfg.addSqlFunction( “count”, new ClassicCountFunction());   

classicCfg.addSqlFunction( “avg”, new ClassicAvgFunction());   

classicCfg.addSqlFunction( “sum”, new ClassicSumFunction());   

SessionFactory classicSf = classicCfg.buildSessionFactory();   

 

或 

Java代码  

//int count = ((Integer)query.uniqueResult()).intValue();   

//改成   

  

int count = ((Number)query.uniqueResult()).intValue();   

  

//这样就可以两个版本同时兼容.   

  

Java代码  

//参考代码  

//第一种方法:  

  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();  

 

今天的文章int count = ((Integer)query.uniqueResult()).intValue(); 出错分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/13239.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注