引起原因:java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:行附近

      Root<Purchases> purchasesRoot = cq.from(Purchases.class);
       Root<TaskProcesses> taskProcessesRoot = cq.from(TaskProcesses.class);
       //task
       Subquery<Tasks> tasksSubquery = cq.subquery(Tasks.class);
       // task process
       Subquery<TaskProcesses> taskProcessesSubquery = cq.subquery(TaskProcesses.class);
       //Join<Tasks,TaskProcesses> tasksTaskProcessesJoin = tasksRoot.join("taskProcesses",JoinType.LEFT);
       //Join<Tasks,Purchases> purchasesTasksJoin = tasksRoot.join("tasks",JoinType.LEFT);
       taskProcessesSubquery.select(taskProcessesRoot);
       taskProcessesSubquery = taskProcessesSubquery.where(cb.and(
               cb.equal(tasksRoot.get("id"),taskProcessesRoot.get("taskId")),cb.in(taskProcessesRoot.get("orgId")).value(this.getOrgIds()),cb.equal(taskProcessesRoot.get("type"),"purchase"),cb.equal(taskProcessesRoot.get("status"),intStatusnum)
       ));
       tasksSubquery.select(tasksRoot);
       tasksSubquery = tasksSubquery.where(cb.and(
               cb.equal(root.get("id"),tasksRoot.get("missionId")),cb.equal(tasksRoot.get("missionType"),cb.exists(taskProcessesSubquery)

       ));
       predicate.add(cb.and(
               cb.exists(tasksSubquery),cb.equal(root.get("status"),intStatusnum)
       ));

我的错误如下:

Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: where near line 1,column 317 [select generatedAlias0 from com.runoclound.warehouse.model.Purchases as generatedAlias0,com.runoclound.warehouse.model.Tasks as generatedAlias1,com.runoclound.warehouse.model.Purchases as generatedAlias2,com.runoclound.warehouse.model.TaskProcesses as generatedAlias3 where ( exists (select generatedAlias1 from  where ( generatedAlias0.id=generatedAlias1.missionId ) and ( generatedAlias1.missionType=:param0 ) and ( exists (select generatedAlias3 from  where ( generatedAlias1.id=generatedAlias3.taskId ) and ( generatedAlias3.orgId in (:param1) ) and ( generatedAlias3.type=:param2 ) and ( generatedAlias3.status=0 )) )) ) and ( generatedAlias0.status=0 ) order by generatedAlias0.createdAt desc]
format_88 回答:引起原因:java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:行附近

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3119685.html

大家都在问