Я возвращаюсь на Java через несколько лет, и это мой второй день, глядя на спящий режим и еще не совсем понял его.Hibernate Criteria.list() вызывает java.lang.ClassCastException
У меня есть следующие критерии, которые выполняют присоединиться:
Criteria cr = s.createCriteria(Bla.class, "bla");
cr.setFetchMode("bla.nodePair", FetchMode.JOIN);
cr.createAlias("bla.nodePair", "node_pair");
cr.add(Restrictions.in("bla.blaName", (List<Bla>) getBlas()));
ProjectionList columns = Projections.projectionList()
.add(Projections.property("node_pair.priNode"))
.add(Projections.property("bla.blaName"))
.add(Projections.property("node_pair.secNode"))
.add(Projections.property("bla.port"));
cr.setProjection(columns);
List<Object[]> list = cr.list(); // Exception occurs here
Это создает насколько я могу сказать, правильный запрос SQL и именно то, что я после.
Однако, когда я пытаюсь создать список результатов cr.list();
я получаю:
java.lang.ClassCastException: com.some.package.domainobject.Bla cannot be cast to java.lang.String
Как я должен построить свой список. Любые указатели очень ценятся.
Ваш пример кажется, что это совсем что-то вы воспользовались практикой. Является ли вещь в базе данных типом класса 'Bla'? Вы положили его там? Вы могли бы попытаться прочитать другой объект из базы данных, и это отключит вас. – markspace