String sql = "select isNull(sum(len(num) / 12),0) from test where id= "
+ id;
int result=-1; 
try{
List<java.lang.Integer> intList = getHibernateTemplate().find(sql);//为什么这里查询出来是long型,从断点当中看出来是long。
if(intList.size()>0){
result = intList.get(0);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(session!=null){
session.close();
}
}
代码哪里不对,为什么查询出来是long,大家在ssh当中返回一个int是怎么做的,这样做没有问题吧!请高手讲解下。

解决方案 »

  1.   

    int怕装不下,就用long啊,呵呵,我猜的,你可以手动把它转化为integer型的
      

  2.   

    怎么只有接口?实现类呢?要find的方法就够了。方法的返回值肯定是long啊,转一下就行了。
      

  3.   

    isNull(sum(len(num) / 12),0)数据库里面可能是number型,所以映射会是long。
      

  4.   

    Oracle里面的number数据类型一般都会映射成Long类型的
      

  5.   

    查出来是LONG,是不是你配置的那个值就是long类型的?还有,本来查询数据库是数字的话,都是long型的,要么就是string类型,因为转换成大类型,能够不出以外,要小类型,自己转换一下。
      

  6.   

    是这样的。我用的是hibernate 3.0 ,hibernate 3.0 sum()返回的类型是long,我的解决办法是先转换为string 再转换为long ,不知道大家有没有好的解决办法。
      

  7.   

    http://csinfo.blog.hexun.com/16397496_d.html
    这个可以看一下