我正在使用以下 HQL 查詢:
List<Object> object = session.createQuery("select userId, count(*) from Tweet "
"group by userId", Object.class).getResultList();
它導致以下錯誤:
原因:org.hibernate.query.QueryTypeMismatchException:查詢結果型別錯誤 - 多選:在 org.hibernate 使用 org.hibernate.query.sqm.internal.QuerySqmImpl.checkQueryReturnType(QuerySqmImpl.java:367) 的元組或陣列。 query.sqm.internal.QuerySqmImpl.visitQueryReturnType(QuerySqmImpl.java:328) at org.hibernate.query.sqm.internal.QuerySqmImpl.(QuerySqmImpl.java:227) at org.hibernate.internal.AbstractShare
這可能是什么原因?是因為我選擇了其中的特定列嗎?
uj5u.com熱心網友回復:
您的 select 子句回傳兩件事,因此該方法的型別簽名應該是List<Object[]>. 使用這個版本:
List<Object[]> object = session.createQuery("select userId, count(*) from Tweet "
"group by userId", Object[].class).getResultList();
但請注意,您還可以定義與 select 子句匹配的物體。然后,您可以避免繁瑣的Object[]結果集型別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/433590.html
下一篇:JPAEntityNotFoundException。如何在不考慮使用JPACriteria查詢的關系映射的情況下進行查詢
