報錯: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();

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM