java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer

hibernate查询结果条数集

原写法:

Integer count =  (Integer )session.createQuery(hql).uniqueResult();

报错:java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer

原因:

从Hibernate 3.0.x/3.1.x升级到最新的3.2版之后,3.2版的很多sql函数如count(), sum()的唯一返回值已经从Integer变为Long,如果不升级代码,会得到一个ClassCastException。

这个变化主要是为了兼容JPA,可以在hibernate.org的最新文档中找到说明。

解决方案:

1.hibernate尤其解决方案。当使用hibernate的查询函数count(),sum()等的值时(注意:一定是只返回唯一值的并且为数字格式是才可以)可已调用query的uniqueResult();方法  此方法返回Object对象,只需要把它转为Number类型,然后调用.intValue()即可。

例如:

Integer count =  ((Number) session.createQuery(hql).uniqueResult()).intValue();

2.可以将long转为字符串,然后将字符串再转为integer;

 Long i = (Long) session.createQuery(hql).uniqueResult();

Integer ii= new Integer(String.valueOf(i));

这两种方案即可解决此类问题~

时间: 2024-12-19 23:35:08

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer的相关文章

java.lang.ClassCastException: android.app.Application cannot be cast to

出这个异常的原因是在项目中添加了新lication类(public class Application extends lication)之后,没有在AndroidManifest.xml中添加该类的声明,所以编译器抛出异常: java.lang.ClassCastException: android.app.Application cannot be cast to 类名  <application android:icon="@drawable/icon" android:l

安卓出现错误: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText

Caused by: Java.lang.ClassCastException: Android.widget.TextView cannot be cast to android.widget.EditText 该种报错信息,检查代码确定无误后,若还是出现这种错误,则可通过以下这个办法进行解决: 点中该项目-->点击Project-->clean   清理下再重新运行该项目,然后就解决了

java.lang.ClassCastException:android.widget.Button cannot be cast to android.widget.ImageView

今天遇到一个错误也不知道怎么回事,上网搜了一下: 出现的问题是:java.lang.ClassCastException:android.widget.Button cannot be cast to android.widget.ImageView 解决的方法是: Clean 你的项目.(点击eclipse上面的project然后clean然后选择你要clean的项目) 修改一个xml文件,然后保存(稍微动一下,保存) 删除 R 文件. (build project 之后会自动生成).

关于android使用ksoap2报Caused by: java.lang.ClassCastException: org.ksoap2.SoapFault cannot be cast to org.ksoap2.serialization.SoapObject

Caused by: java.lang.ClassCastException: org.ksoap2.SoapFault cannot be cast to org.ksoap2.serialization.SoapObject 报这种类似的错误的,困扰了我挺久.偶尔报不是一直报. 原来是少了一个判断,因为服务器每次返回的不一定是我们想要的结果. 见图 困惑了好久,最后在 stackoverflow 里面才找到答案. 大概就是服务器异常的时候会导致这个,难怪我程序会崩溃有些时候,比如某个地方本

Android: java.lang.ClassCastException: android.widget.imageView cannot be cast to android.widget.textView异常解决

有时在修改xml文件时,全报这种错误,这个应该是缓存没得到及时更新导致的,可以通过以下方法解决: Eclipse tends to mess up your resources every now and then. This leads to some odd behavior such as strings and images being swapped all over your app, and more commonly classCastException(s), which ha

java.lang.ClassCastException: android.os.BinderProxy cannot be cast to com.test.Test

由于我在第二个Activity中指定了进程名字,但是服务却没有指定进程名(默认跟主入口一个进程)所以报错. 网上找到的是 服务 和绑定服务的客户端必须在同一个application或者进程中,所以Manifest中也要指定服务的进程名且和调用服务的Activity的中客户端在同一进程中. <service android:name=".TestService" android:process="myprocess.remote"/><activit

java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.TextView

最近在学习drawerLayout时,遇到这个bug.如下示: 原因: 可能是没有在适配器参数内加入TextView的id. 解决方案: 将原来的适配器参数代码 mDrawerList.setAdapter(new ArrayAdapter<String>(this,R.layout.list_item,datas)); 修改为以下形式即可: mDrawerList.setAdapter(new ArrayAdapter<String>(this,R.layout.list_ite

Hibernate HQL查询异常:java.lang.ClassCastException解决

有时候,我们查询只需要查询bean的某一个部分,而不需要它所有的属性,这时候HQL就可以这样写: 假设有一个类User(省略getter setter): public class User { private String name; private int age; private boolean sex; } 如果只需要查询姓名和年龄,则HQL可以这样写:select new User(name,age) from User; 此时实体类中需要有一个new User(name,age) 这

错误 java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle

出现错误: java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle 百度搜索错误,没有结果.谷歌搜索:http://stackoverflow.com/questions/5694017/specify-java-localization-file 解决方法,修改了一行代码 prop = ResourceBundle.getBundle(this.getClass().g

遇到的错误java.lang.ClassCastException

package tpackage; public class ArrayList<E> { private Object list[]; private int sum=0; public ArrayList(){ this(16); } public ArrayList(int capacity) { list = new Object[capacity]; } public E[] toArray() //将Object数组转型为 E[] { return (E[]) list; } pu