首页 > 解决方案 > 为什么等号在 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]

标签: mysqljpaspring-data-jpajpa-2.0

解决方案


推荐阅读