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

    参考

  • 相关阅读:
    你写的单例真的安全吗?
    CountDownLatch&&CyclicBarrier
    初步认识AQS
    Atomic底层原理
    volatile关键字
    Linux常用服务类相关命令
    线程池
    由浅入深TheradLocal
    synchronized关键字
    .net 中dapper实现事务的三种方式总结
  • 原文地址:https://www.cnblogs.com/mm0712/p/6370212.html
Copyright © 2011-2022 走看看