Как исправить ошибку после обновления Hibernate в приложении Java - PullRequest
0 голосов
/ 23 октября 2019

выпуск

мы недавно обновили версию hibernate до версии 5.4.0 final
, после чего мы заметили, что все именованные запросы начали давать сбой

попытался найти основную причину и обнаружил, чтоон работает только для списка, и если мы пытаемся изменить его на потоки, он работает нормально.

пример запроса:
List employee = new ArrayList ();employee.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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...