JPA EclipseLink поддерживает подзапрос в выборе? ClassCastException

jpa subquery eclipselink selection

574 просмотра

1 ответ

при использовании Eclipse 2.6.3 при выборе подзапроса выдается следующая ошибка. Поддерживает ли подзапрос в выборе?

CriteriaQuery query = criteriaBuilder.createQuery(String.class);
Root root = query.from(Employee.class);
Subquery subquery = query.subquery(String.class);
Root subqueryRoot = subquery.collate(root);
subquery.select(subqueryRoot.get("name"));
query.select(subquery);

java.lang.ClassCastException: org.eclipse.persistence.internal.jpa.querydef.SubQueryImpl cannot be cast to org.eclipse.persistence.internal.jpa.querydef.SelectionImpl
        at org.eclipse.persistence.internal.jpa.querydef.CriteriaQueryImpl.createCompoundQuery(CriteriaQueryImpl.java:511)
        at org.eclipse.persistence.internal.jpa.querydef.CriteriaQueryImpl.getDatabaseQuery(CriteriaQueryImpl.java:447)
        at org.eclipse.persistence.internal.jpa.querydef.CommonAbstractCriteriaImpl.translate(CommonAbstractCriteriaImpl.java:198)
        at org.eclipse.persistence.internal.jpa.querydef.CriteriaQueryImpl.translate(CriteriaQueryImpl.java:691)
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1551)
Автор: Dave Источник Размещён: 08.11.2019 11:29

Ответы (1)


1 плюс

Вы не можете выбрать подзапрос напрямую, так как использование подзапроса ограничено отдельными результатами, и поэтому вам придется использовать его внутри функции. Согласно документации EclipseLink , EclipseLink имеет поддержку JPQL для использования подзапроса в предложении FROM, поэтому вы можете попробовать использовать его аналогичным образом с Criteria API, хотя я не знаю, будет ли он работать.

Автор: Chris Размещён: 22.08.2016 04:21
Вопросы из категории :
32x32