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();

    参考

  • 相关阅读:
    Linux 分区与挂载
    Linux Shell 编程总结
    Java AtomicIntegerFieldUpdater 抽象类
    Java 内部类加载顺序
    Java AtomicIntegerArray 类
    Java AtomicInteger 类
    Java ReentrantLock 类
    Java Runnable 接口
    Java Supplier 接口
    Java Consumer 接口
  • 原文地址:https://www.cnblogs.com/mm0712/p/6370212.html
Copyright © 2011-2022 走看看