mysql - 为什么等号在 jpa 查询中给出错误
问题描述
我写了一个查询,但给出的错误等于接近 ca.category=:Comment
@Query("SELECT ca FROM CandidateModel ca WHERE ca.cid=:cid"
+ " AND ((CASE WHEN true=:comments THEN ca.category = :Comment AND ca.candidateId=:candidateId END) OR (CASE WHEN true=:interviewAssNotes THEN ca.category=:Comment AND ca.candidateId=:candidateId AND ca.commentScoreValue is not null END) OR (CASE WHEN true=:EamilToCand THEN ca.activity=:emailId AND ca.category=:Mail END) OR (CASE WHEN true=:EmailExternal THEN ca.activity=:emailId AND ca.category=:Mail AND ca.mailCandidateId=:candidateId END) OR (CASE WHEN true=:offerLetter THEN ca.category=:OfferLetter AND ca.candidateId=:candidateId END)) order by ca.lastUpdatets desc")
public List<CandidateActivityModel> getfilteredActivities(@Param("cid") int cid, @Param("candidateId") int candidateId,
@Param("emailId") String emailId, @Param("comments") boolean comments, @Param("interviewAssNotes") boolean interviewAssNotes,
@Param("EamilToCand") boolean EamilToCand, @Param("EmailExternal") boolean EmailExternal,
@Param("offerLetter") boolean offerLetter, @Param("Comment") String Comment, @Param("Mail") String Mail,
@Param("OfferLetter") String OfferLetter, Pageable pageRequest);
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: = near line 1, column 134 [SELECT ca FROM com.rajeev.view.CandidateModel ca WHERE ca.cid=:cid AND ((CASE WHEN true=:comments THEN ca.category = :Comment AND ca.candidateId=:candidateId END) OR (CASE WHEN true=:interviewAssNotes THEN ca.category=:Comment AND ca.candidateId=:candidateId AND ca.commentScoreValue is not null END) OR (CASE WHEN true=:EamilToCand THEN ca.activity=:emailId AND ca.category=:Mail END) OR (CASE WHEN true=:EmailExternal THEN ca.activity=:emailId AND ca.category=:Mail AND ca.mailCandidateId=:candidateId END) OR (CASE WHEN true=:offerLetter THEN ca.category=:OfferLetter AND ca.candidateId=:candidateId END)) order by ca.lastUpdatets desc]
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:74) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:91) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:288) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:187) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:115) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:76) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:150) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:298) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1825) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:291) ~[hibernate-entitymanager-5.0.2.Final.jar:5.0.2.Final]
解决方案
推荐阅读
- html - 如何从网页中的按钮在后台运行 powershell 命令。那可能吗?
- jquery - 我想将一个值计算到一个表中,但它只给我一列的结果
- javascript - 如何使用 nuxt 在内部路由到我的帖子
- codeigniter - 将结果中的两行或多行合并为 CI 活动记录上的单个结果
- python - TypeError: with_column() 需要 3 到 4 个位置参数,但给出了 5 个(python)
- r - 选择具有相应位置的数据帧的 p 最高值
- node.js - 如何通过 Puppeteer 和 Request(http 模块)的代理在 Google Cloud App Engine 上启用传出 HTTP 连接的传出请求?
- vue.js - Vuex。无法访问对象变量
- python - 从 pandas 列中解压缩可变长度字典并创建单独的列
- r - 轴极端处的轴刻度线与面板边框不对齐