Re: ParseException with EJBQL expression

From: Andrey Razumovsky (razumovsky.andre..mail.com)
Date: Thu Dec 17 2009 - 07:03:29 EST

  • Next message: Andrey Razumovsky: "Re: ParseException with EJBQL expression"

    So likeIgnoreCase in not supported at all? Is there some workaround?

    2009/12/4 Andrus Adamchik <andru..bjectstyle.org>

    > "likeIgnoreCase" is not valid in EJBQL. Although the error message refers
    > to something else... strange...
    >
    >
    >
    > On Dec 4, 2009, at 4:12 AM, Dave Lamy wrote:
    >
    > Hey guys--
    >>
    >> I'm really just now getting into using the EJBQLQuery and am having some
    >> difficulties. I don't know whether I'm doing something fundamentally
    >> wrong
    >> or what.
    >>
    >> Here's my EJBQL expression that I'm trying to get parsed (running 3.0B1):
    >>
    >> select COUNT(foo) from ProductCollection foo where
    >> foo.productStyles.taxonomy likeIgnoreCase '323.%'
    >>
    >> Parsing this query yields the following exception:
    >>
    >>
    >> org.apache.cayenne.ejbql.parser.ParseException: Encountered " <IDENTIFIER>
    >> "foo "" at line 1, column 53.
    >> Was expecting:
    >> "(" ...
    >>
    >> at
    >>
    >> org.apache.cayenne.ejbql.parser.EJBQL.generateParseException(EJBQL.java:9419)
    >> at
    >> org.apache.cayenne.ejbql.parser.EJBQL.jj_consume_token(EJBQL.java:9298)
    >> at
    >> org.apache.cayenne.ejbql.parser.EJBQL.conditional_primary(EJBQL.java:1933)
    >> at
    >> org.apache.cayenne.ejbql.parser.EJBQL.conditional_factor(EJBQL.java:1911)
    >> at
    >> org.apache.cayenne.ejbql.parser.EJBQL.conditional_term(EJBQL.java:1776)
    >> at
    >>
    >> org.apache.cayenne.ejbql.parser.EJBQL.conditional_expression(EJBQL.java:1738)
    >> at
    >> org.apache.cayenne.ejbql.parser.EJBQL.conditional_primary(EJBQL.java:1928)
    >> at
    >> org.apache.cayenne.ejbql.parser.EJBQL.conditional_factor(EJBQL.java:1911)
    >> at
    >> org.apache.cayenne.ejbql.parser.EJBQL.conditional_term(EJBQL.java:1776)
    >> at
    >>
    >> org.apache.cayenne.ejbql.parser.EJBQL.conditional_expression(EJBQL.java:1738)
    >> at org.apache.cayenne.ejbql.parser.EJBQL.where_clause(EJBQL.java:1585)
    >> at org.apache.cayenne.ejbql.parser.EJBQL.select_statement(EJBQL.java:69)
    >> at org.apache.cayenne.ejbql.parser.EJBQL.parseQuery(EJBQL.java:41)
    >> ...
    >>
    >> The statement looks legit to me. Is there like a fundamental something
    >> I'm
    >> not understanding about EJBQL? I saw some docs that showed doing this
    >> sort
    >> of join alias "IN" thing,
    >>
    >> SELECT OBJECT(e) FROM Department d, IN(d.employees) e
    >> WHERE d.name = ?1 AND e.salary > ?2
    >>
    >> My problem is that I'm using Expression.toEJBQL() to gen the where
    >> clause..
    >> was hoping to not have to recreate my code that generates the Expression
    >> object.
    >>
    >> Help!
    >>
    >> Dave
    >>
    >
    >

    -- 
    Andrey
    



    This archive was generated by hypermail 2.0.0 : Thu Dec 17 2009 - 07:06:00 EST