我必须为一个用例构建一个Criteria Query,其输出就像..
从XXX x,YYY y中选择新的WrapperXXXYYY(XXX.something,YYY.something),其中x.id = y.createdBy和...
我创建的代码是..这里的域类只是其他两个Entity类的包装.
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<? extends T> criteriaQuery = builder.createQuery(domainClass);
Root<JPAUser> user = criteriaQuery.from(JPAUser.class);
Root<JPAReport> report = criteriaQuery.from(JPAReport.class);
criteriaQuery.multiselect(builder.construct(domainClass, user.get("surrogateId"), report.get("projectId")));
return em.createQuery(criteriaQuery);
Run Code Online (Sandbox Code Playgroud)
我得到以下异常"javax.ejb.EJBException:java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:新近第1行,第62列"
生成的查询是 - [从com选择新的com.collabnet.ctf.server.report.jpa.JPAReportList(new com.collabnet.ctf.server.report.jpa.JPAReportList(generatedAlias0.surrogateId,generatedAlias1.projectId)). collabnet.ctf.server.user.jpa.JPAUser as generatedAlias0,com.collabnet.ctf.server.report.jpa.JPAReport as generatedAlias1]
我看到domainClass有两个"新"语句,语法出了什么问题?