anwsering my own question : "upper" can be used, but the keyword *must* be in lower case
2009/12/17 Andrey Razumovsky <[email protected]> > So likeIgnoreCase in not supported at all? Is there some workaround? > > 2009/12/4 Andrus Adamchik <[email protected]> > > "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 > -- Andrey
