zoukankan      html  css  js  c++  java
  • 报错: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

    代码:SessionFactory sf=this.getSessionFactory();

    Session session=sf.openSession();
    SQLQuery createSQLQuery = session.createSQLQuery("select * from person");

    List<PersonEntity> list_Person = (List<PersonEntity>)createSQLQuery.list();
    session.close();

    上面的查询是返回标量值的,Object类型,是从resultset中返回的”裸”数据。

    如果使用原生sql语句进行query查询时,hibernate是不会自动把结果包装成实体的。需手动包装

    解决方式:

    下面通过加上 addEntity() 让原生查询返回实体对象。

    Session session=sf.openSession();

    SQLQuery createSQLQuery = session.createSQLQuery("select * from person");

    createSQLQuery.addEntity(PersonEntity.class);
    List<PersonEntity> list_Person = (List<PersonEntity>)createSQLQuery.list();
    session.close();

    参考

  • 相关阅读:
    java的类继承(与c++对比)
    java的数据类型、自动拆装箱、字面量
    java中关键字static和final
    JVM之JIT
    java之JIT(Just in time)
    栈和堆
    C++中vector的使用
    canvas
    ajax笔记
    CSS笔记
  • 原文地址:https://www.cnblogs.com/mm0712/p/6370212.html
Copyright © 2011-2022 走看看