关于java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 实体类
由于业务逻辑的复杂,有些sql语句写法hql不支持,所以hibernate查询直接用了sql原生查询,由于数据结果根据四个表查询出来,所以无法使用方法.addEntity(XXXXXXX.class);把结果转对象,就这样以对象数组的形式传到了Action层,
然而Action层传到前台需要对数据进行封装一下(前台用的easyui,数据展示根据key名获取value值),所以进行转化(就在这浪费了我近两天的时间,气!),由于是对象数组的形式,网上搜索各种方法进行取值都无效,后来在impl层,把返回的格式返回为Pagenate<Object[]>形式,(原来是Pagenate<实体类>),在前台一顿遍历封装(取值方式采用的是下标取值,感谢https://blog.csdn.net/zb0567/article/details/7183043),然后成功
知识点:
hibernate 中createQuery与createSQLQuery两者区别是:
前者用的hql语句进行查询,后者可以用sql语句查询
前者以hibernate生成的Bean为对象装入list返回,后者则是以对象数组进行存储
所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便
突然发现createSQLQuery有这样一个方法可以直接转换对象
Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);
XXXXXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean。但是这个bean必须有映射
https://blog.csdn.net/zb0567/article/details/7183043的原贴
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
List abc = zzteledao.GetUser("select aa,bbfrom cc where id="+ id);
List temp=(List)abc.get(0);
这时会爆出如题的错误,是因为select出来的是一个object,两个项目,debug出来的像list一样,l但是转换还是出错
后来改成如下
if (abc != null) {
Object[] le = (Object[]) abc.get(0);
aa= le[0].toString();
bb= le[1].toString();
}
即可解决
另外一种就是Lei{aa,bb}这样的类,用类来替代
Lei temp=(Lei)abc.get(0)
关于java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 实体类的更多相关文章
- java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem异常
今天一不小心就碰到了这样的问题,以前从来没有碰到过,在网上搜了很多办法,思路正确,但是还是要根据自己的程序改变. 一开始写的是hql语句进行统计每个月的数据,但是试了很久,程序一直提醒hql语句异常, ...
- unexpected token: * 和 java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 解决办法
一.unexpected token: * 的解决办法 首先要搞清楚sql与hql的区别! sql操作的是数据库表,而hql操作的是对象! sql中“select * from table”,而hq ...
- 报错:java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.xxx.entity.PersonEntity
报错:java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.xxx.entity.PersonEntity 代 ...
- Java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
今天接入激光推送,一直报错: Java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker; ...
- java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
spring3_hibernate 集成报错信息 java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljav ...
- java.lang.AbstractMethodError: org.slf4j.impl.JDK14LoggerAdapter.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
java.lang.AbstractMethodError: org.slf4j.impl.JDK14LoggerAdapter.log(Lorg/slf4j/Marker;Ljava/lang/St ...
- Idea运行时Scala报错Exception in thread "main" java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
一.情况描述 使用idea +scala+spark,运行程序代码如下: package cn.idcast.hello import org.apache.spark.rdd.RDD import ...
- java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.TextView
最近在学习drawerLayout时,遇到这个bug.如下示: java.lang.ClassCastException: android.widget.RelativeLayout cannot b ...
- 关于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.serializa ...
随机推荐
- c++与java的几个不同点
Java.C.C++在近两年一直稳居世界编程语言排行榜前三名.Java与c++都是面向对象的语言,但Java晚于C++发布,部分语法和思想也参考了C++,只是Java 没有头文件.指针.运算符重载.虚 ...
- ActiveSync的Settings命令
在[MS-ASCMD]中,Settings命令的功能这样定义的: The Settings command also sends device information to ...
- Java接口自动化测试之Maven项目的创建(一)
这里使用Idea创建Maven项目, 过程非常简单, 装好JDK和Idea 1. 安装完后,打开Idea, 选择File→New→Project, 如图 2. 选择maven, 点击Next, 如图 ...
- Mac OS X10.8.3-bash基本命令失效后的修复
-bash基本命令都失败了. 比如: -bash: ls :command not found 顿时心都凉了. 想要找到.bash_profile文件也不是那么容易的. step1. 在t ...
- xxl系列部署启动通用办法
http://10.10.6.186:8080/xxl-job-admin # 编译mvn compile # 清理mvn clean # 打包mvn package # 先清理后编译mvn clea ...
- JavaScript数组去重的6个方法
方法一无需思考,我们可以得到 O(n^2) 复杂度的解法.定义一个变量数组 res 保存结果,遍历需要去重的数组,如果该元素已经存在在 res 中了,则说明是重复的元素,如果没有,则放入 res 中. ...
- 未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序。
问题描述:运行访问oracle数据库的.net程序时,弹出错误"未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序". 系统环境:windows server 2 ...
- vue中使用axios最详细教程
前提条件:vue-cli 项目 安装: npm npm 在main.js导入: // 引入axios,并加到原型链中 import axios from 'axios'; Vue.prototype. ...
- Vue 组件(上)转载
一.定义 组件:应用界面上一个个的区块. 自定义的HTML元素. 二.创建和注册 Vue.extend() 扩展,创建组件构造器 Vue.component()注册组件,2个参数,1为标签,2是组件构 ...
- HDU2586How far away? LCA
去博客园看该题解 题意 给出一棵树,以及每条边的权值,给出一些询问,每个询问是2个节点,求每个询问对应的2个节点的距离. 算法 LCA_Tarjan 代码 #include <cstring&g ...