首页 > 解决方案 > 出现错误:表达式不是有效的条件表达式

问题描述

Query eWFqery = em.createQuery("SELECT eworkfirm FROM EsafWorkFirms eworkfirm WHERE eworkfirm.feiNum = :feiNumber AND eworkfirm.getEsafWork().getWorkId() IN :workIdList");
        eWFqery.setParameter("feiNumber", firmObj.getFeiNum());
        eWFqery.setParameter("workIdList", workIdList);

请帮助我收到以下错误。

错误:

java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: 
Exception Description: Syntax error parsing [SELECT eworkfirm FROM 
EsafWorkFirms eworkfirm WHERE eworkfirm.feiNum = :feiNumber AND 
eworkfirm.getEsafWork().getWorkId() IN :workIdList]. 
[52, 136] The expression is not a valid conditional expression.

标签: oraclejpajpql

解决方案


我猜这种语法在中是有问题的:getEsafWork().getWorkId()...

请尝试(如果列表包含 id):

eworkfirm.esafWork.workId in ...

...如果列表包含“作品”,那么只需:

eworkfirm.esafWork in ...

推荐阅读