Я пробовал это решение:
List<javax.persistence.Tuple> result = entityManager.createQuery("select f.Id as Id, f.Project as Project from FirewallRequest f", javax.persistence.Tuple.class)
.getResultList();
result.get(0).get("Project");
Я получаю это:
java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to class javax.persistence.Tuple ([Ljava.lang.Object; is in module java.base of loader 'bootstrap'; javax.persistence.Tuple is in unnamed module of loader java.net.URLClassLoader @7a9273a8)
Так что, похоже, возвращается List
из Object
с вместо Tuple
с. Tuple
не поддерживается EclipseLink или в чем проблема?
Отладчик показывает, что на самом деле Vector
из Object
s:
Я использую TomEE 8, который использует EclipseLink 2.7.4.v20190115 для JPA. Я мог бы попробовать с JPA Criteria Query, но я конвертирую из SQL, и было бы проще конвертировать его в JPQL.
Редактировать 1
Здесь является ответом автора связанной статьи, который также предполагает, что это должно работать.
Редактировать 2
EclipseLink выпуск создан.
Редактировать 3
К счастью, это работает с JPA Criteria Query (CriteriaBuilder#createTupleQuery()
). Это больше работы для преобразования SQL в это, но по крайней мере это работает.