0

问题

我们最近将休眠版本升级到了 5.4.0 最终版本,
之后我们注意到所有命名查询都开始失败

试图找到根本原因,发现它唯一的失败列表,如果我们尝试将其更改为流,它工作正常。

示例查询:
List employees= new ArrayList(); employees.addAll((List) getCurrentSession().getNamedQuery("getEmployeeById").setParameterList("Ids", ids).list());

堆栈跟踪

java.lang.ClassCastException: org.hibernate.hql.internal.classic.NamedParameterInformationImpl cannot be cast to java.util.ArrayList
org.hibernate.hql.internal.classic.QueryTranslatorImpl.getNamedParameterLocs(QueryTranslatorImpl.java:639)
org.hibernate.loader.Loader.buildNamedParameterLocMap(Loader.java:1090)
org.hibernate.loader.Loader.createSubselects(Loader.java:1053)
org.hibernate.loader.Loader.processResultSet(Loader.java:1018)
org.hibernate.loader.Loader.doQuery(Loader.java:948) 
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:340)
org.hibernate.loader.Loader.doList(Loader.java:2695) 
org.hibernate.loader.Loader.doList(Loader.java:2678) 
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2512)
org.hibernate.loader.Loader.list(Loader.java:2507)
org.hibernate.hql.internal.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:1038)
org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:224)
org.hibernate.internal.SessionImpl.list(SessionImpl.java:1511)
org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1561)
org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1529)
4

0 回答 0