2016-08-20 13 views
1

Eclipse 2.6.3を使用している場合、サブクエリを選択すると、次のエラーが発生します。 選択時にサブクエリをサポートしていますか?JPA EclipseLinkはサブクエリをサポートしていますか? ClassCastException

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) 

答えて

0

サブクエリの使用を単一の結果に制限されているとしてあなたは、直接サブクエリを選択することはできません、ので、あなたが関数内でそれを使用する必要があります。 EclipseLink docsによると、EclipseLinkはFRQL句でサブクエリを使用するためのJPQLサポートを備えているため、Criteria APIと同様に使用することができますが、動作するかどうかわかりません。

関連する問題