java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
2024-10-19 02:25:49
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));
这两种方案即可解决此类问题~
最新文章
- C++折半插入排序
- 阻塞队列BlockingQueue 学习
- hdu 1005 1021 递归超限 找规律 // 只要看题中n较大都是有规律的
- android studio 开启genymotion 出现";failed to create framebuffer image";
- Python中的库使用之一 PIL
- TypeError: document.formname.submit is not a function
- Samsung_tiny4412(驱动笔记01)----linux 3.5,U-Boot,Busybox,SD卡启动环境搭建
- 【Reporting Services 报表开发】— 数据表的使用
- SQL2008-字符转数字CAST和CONVERT
- java中的IO流
- 管理Undo数据
- ListView的简单使用和性能优化
- cocos2d之Box2D详细说明 鼠标联合实现
- NSData与UIImage互相转换
- CSU 1515 Sequence
- 你的计算机也可以看懂世界——十分钟跑起卷积神经网络(Windows+CPU)
- ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
- Cannot redeclare C() (previously declared in .
- Windows10上强制Visual Studio以管理员身份运行
- !!代码:baidu地图
热门文章
- python之celery使用详解一
- 隐藏Tengine的版本信息
- vscode 换行符\n 变成\r\n
- js模拟form打开新窗口
- Animation.setFillAfter and Animation.setFillBefore的作用
- 转:linux下配置JDK提示tools.jar/dt.jar权限不够
- ftp 自动上传数据库备份文件
- 5. 集成学习(Ensemble Learning)GBDT
- 基于jquery横向手风琴效果
- 解压报错gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now的解决方法