[ https://issues.apache.org/jira/browse/OPENJPA-2763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pawel Veselov closed OPENJPA-2763. ---------------------------------- Resolution: Not A Problem Jumped the gun on this. Haven't been using JPQL for a while, in favor of criteria API :) Apparently, boolean fields can not be used as boolean expressions, still need a comparison operator. > Certain AND/NOT combination fail to parse > ----------------------------------------- > > Key: OPENJPA-2763 > URL: https://issues.apache.org/jira/browse/OPENJPA-2763 > Project: OpenJPA > Issue Type: Bug > Components: kernel > Affects Versions: 2.4.2 > Reporter: Pawel Veselov > Priority: Major > > I don't have enough details for a minimized use case, I'll update this as I > investigate. > The following query fails to parse, {{campaign}} is a reference field, and > {{enabled}} is a boolean field. > {code} > update E_CampaignDevice cd set cd.enabled = true where ( cd.campaign = > :campaign ) AND ( NOT ( cd.enabled ) ) > {code} > I don't see anything wrong with the query. The error is: > {noformat} > Caused by: <openjpa-2.4.2-xl4.2-rUnversioned directory nonfatal user error> > org.apache.openjpa.persistence.ArgumentException: Encountered "NOT" at > character 92, but expected: ["("]. > at > org.apache.openjpa.kernel.jpql.JPQL.generateParseException(JPQL.java:13188) > at > org.apache.openjpa.kernel.jpql.JPQL.jj_consume_token(JPQL.java:13064) > at > org.apache.openjpa.kernel.jpql.JPQL.conditional_primary(JPQL.java:1980) > at > org.apache.openjpa.kernel.jpql.JPQL.conditional_factor(JPQL.java:1958) > at > org.apache.openjpa.kernel.jpql.JPQL.conditional_term(JPQL.java:1807) > at > org.apache.openjpa.kernel.jpql.JPQL.conditional_expression(JPQL.java:1769) > at > org.apache.openjpa.kernel.jpql.JPQL.conditional_primary(JPQL.java:1975) > at > org.apache.openjpa.kernel.jpql.JPQL.conditional_factor(JPQL.java:1958) > at > org.apache.openjpa.kernel.jpql.JPQL.conditional_term(JPQL.java:1807) > at > org.apache.openjpa.kernel.jpql.JPQL.conditional_term(JPQL.java:1820) > at > org.apache.openjpa.kernel.jpql.JPQL.conditional_expression(JPQL.java:1769) > at org.apache.openjpa.kernel.jpql.JPQL.where_clause(JPQL.java:1587) > at org.apache.openjpa.kernel.jpql.JPQL.update_statement(JPQL.java:151) > at org.apache.openjpa.kernel.jpql.JPQL.parseQuery(JPQL.java:66) > at > org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.parse(JPQLExpressionBuilder.java:2428) > at > org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.<init>(JPQLExpressionBuilder.java:2415) > at org.apache.openjpa.kernel.jpql.JPQLParser.parse(JPQLParser.java:48) > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)