oracle - 出现错误:表达式不是有效的条件表达式
问题描述
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.
解决方案
我猜这种语法在jpql中是有问题的:getEsafWork().getWorkId()
...
请尝试(如果列表包含 id):
eworkfirm.esafWork.workId in ...
...如果列表包含“作品”,那么只需:
eworkfirm.esafWork in ...
推荐阅读
- scala - 如何测试是否调用了 akka-streams sink?
- ios - Xamarin iOS - HomeKit 集成
- reactjs - 如何在 API 的 POST 请求正文中发送数组和布尔数据
- java - java中远程主机强行关闭现有连接如何处理?
- sql - 从先前的值中减去值,但有异常
- javascript - 如何使用角度将服务功能数据返回到组件?
- python - 如何通过放置“-”来抓取不存在的值?
- keras - 如何避免获得 loss: nan - acc: 0.0000e+00 for CNN-LSTM?
- .net - 来自 .Net 应用程序的 MQRC_NOT_AUTHORIZED
- javascript - 在执行 'yarn start' 时在全新的电子反应打字稿应用程序中:“当提供 '--isolatedModules' 标志时,所有文件必须是模块”