hibernate类型转换的问题
来源:互联网 发布:php隐藏域名跳转代码 编辑:程序博客网 时间:2024/04/30 17:12
报错:java.lang.Long cannot be cast to java.lang.Integer
Long 无法转化成Integer类型.
这个异常 经常出现在hinbernate分页查询的时候.
原因:
这里在Hibernate2.0之前版本list.get(0)返回的是Integer类型.
但是在Hibernate3.0以后版本list.get(0)返回的是Long类型.
所以在这里不可以由Long型强转成Integer类型.
Integer属于不可更改类型,而且Long和Integer没有任何继承关系,当然不能这样转换。
例如:
注: super.pageQuery(hql,null,null,null);调用了一个父类的一个封装方法.查询时候使用
List list = this.getHibernateTemplate().executeFind(new HibernateCallback(){});
Java代码
/**
* 查询所有用户记录总数
*/
public Integer getUsersCount() {
String hql = "select count(*) from Users";
List list = super.pageQuery(hql, null, null, null);
return (Integer) list.get(0);
}
解决办法:
1.网上的方法 觉得不太好
Java代码
public Integer getUsersCount() {
String hql = "select count(*) from Users";
List list = super.pageQuery(hql, null, null, null);
Number num = (Number) list.get(0);
return num.intValue();
}
注:java.lang.Number是Integer,Long的父类.
2.我的方法
Java代码
Object obj =session.createQuery(getcount).list().get(0);
long count= (Long)obj;
Page page = new Page(pageNum,(int)count,pageSize);
Long 无法转化成Integer类型.
这个异常 经常出现在hinbernate分页查询的时候.
原因:
这里在Hibernate2.0之前版本list.get(0)返回的是Integer类型.
但是在Hibernate3.0以后版本list.get(0)返回的是Long类型.
所以在这里不可以由Long型强转成Integer类型.
Integer属于不可更改类型,而且Long和Integer没有任何继承关系,当然不能这样转换。
例如:
注: super.pageQuery(hql,null,null,null);调用了一个父类的一个封装方法.查询时候使用
List list = this.getHibernateTemplate().executeFind(new HibernateCallback(){});
Java代码
/**
* 查询所有用户记录总数
*/
public Integer getUsersCount() {
String hql = "select count(*) from Users";
List list = super.pageQuery(hql, null, null, null);
return (Integer) list.get(0);
}
/** * 查询所有用户记录总数 */ public Integer getUsersCount() { String hql = "select count(*) from Users"; List list = super.pageQuery(hql, null, null, null); return (Integer) list.get(0); }
解决办法:
1.网上的方法 觉得不太好
Java代码
public Integer getUsersCount() {
String hql = "select count(*) from Users";
List list = super.pageQuery(hql, null, null, null);
Number num = (Number) list.get(0);
return num.intValue();
}
注:java.lang.Number是Integer,Long的父类.
public Integer getUsersCount() { String hql = "select count(*) from Users"; List list = super.pageQuery(hql, null, null, null); Number num = (Number) list.get(0); return num.intValue(); } 注:java.lang.Number是Integer,Long的父类.
2.我的方法
Java代码
Object obj =session.createQuery(getcount).list().get(0);
long count= (Long)obj;
Page page = new Page(pageNum,(int)count,pageSize);
0 0
- hibernate类型转换的问题
- hibernate的类型问题
- 类型转换的问题
- 解决Postgresql 的强类型转换运算符::与hibernate冲突的问题
- 强制类型转换的问题
- 类型转换的一个问题
- 一个类型转换的问题;
- 类型转换带来的问题
- 类型转换带来的问题
- 类型强制转换的问题
- MySql类型转换的问题
- 类型转换导致的问题
- Java的类型转换问题
- hibernate 类型转换 CAST
- hibernate操作clob类型的数据问题
- 隐式类型转换的问题
- C#问题--如何转换数组的类型
- 【转】有关字符串的类型转换问题
- 表 T006 和 T006_OIB 不匹配
- ZOJ1654
- PHP做301跳转定向
- 黑马程序员-----网络编程总结(一)
- .NET中使用Jquery和Ajax(三) - load加载
- hibernate类型转换的问题
- Android程序员必备精品资源
- startActivityForResult用法详解
- Linux中设置服务自启动的三种方式(转)
- unity中的destroy
- background-position 实现背景定位 ie用属性background-position-x
- IT公司面试智力题整理
- leetcode —— single number
- 第一天写博客