• java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem异常


     今天一不小心就碰到了这样的问题,以前从来没有碰到过,在网上搜了很多办法,思路正确,但是还是要根据自己的程序改变。

     一开始写的是hql语句进行统计每个月的数据,但是试了很久,程序一直提醒hql语句异常,没办法,只能修改查询语句了,就改成了sql语句进行统计。

     错误就由此产生了,一发不可收拾啊:

     java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.Advertisem这个异常解决办法很简单,首先要弄懂

    hibernate中createQuerycreateSQLQuery 的区别:

    前者用的hql语句进行查询,后者可以用sql语句查询
    前者以hibernate生成的Bean为对象装入list返回
    后者则是以对象数组进行存储
    所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便
    不过createSQLQuery有这样一个方法可以直接转换对象
    Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class)
    XXXXXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean

     hql语句:对每个月的数据进行统计
     String hql = "select sum(sto_Sum) , sum(sto_SumPrice) ,sum(sto_SaleNum) ,sum(sto_SaleNum*sto_SalePrice) from Stock  WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( addDate, '%Y%m' ) ) =1";
                Query query = session.createSQLQuery(hql).addEntity(Stock.class);//关键步骤
                list = query.list();
     

    所以问题归根纠结于就是类型不匹配,无法进行转换,问题就这样解决了!!!

  • 相关阅读:
    JS中iframe子页面与父页面之间通信
    .NET 大数据量并发解决方案
    angular的性能分析 -随记
    第二次作业
    自我介绍
    总结作业
    2019春第四次课程设计实验报告
    2019春第三次课程设计实验报告
    2019春第二次课程设计实验报告
    第十二周作业
  • 原文地址:https://www.cnblogs.com/zcleilei/p/5853117.html
Copyright © 2020-2023  润新知