Re: Dynamic SQL object query

From: Marek Å ab (msab..uk.cvut.cz)
Date: Sun Nov 21 2010 - 16:18:51 UTC

  • Next message: Bruno René Santos: "Optimistic Locking"

    >> SELECT #result('COUNT(id)' 'Long' 'count')
    >> from User #chain('AND' 'WHERE') #chunk($userId) id = #bind($userId) #end #chunk($userName) userInfo.name LIKE $userName #end #end
    >> becuase of "userInfo.name" which is object-style. So my first question is whether there is a way of accomplishing this with EJBQL so I don't have to work with joins there.
    >
    > Yeah, something like this should work:
    >
    > SELECT COUNT(a) FROM User a WHERE a.id = :userId AND a.userInfo.name like :userName
    >
    Hi,

    I played around with this a little bit and I have encountered 2 problems:

    1) When 'id' is not object-mapped ejbql complains about invalid path, I
    found only this
    http://www.mail-archive.com/use..ayenne.apache.org/msg02992.html
    and it seems to be a dead end. Foolish attempt prefixing with 'db:'
    didn't work.

    2) I thought null parameters were supported from 3.0 on, I'm using 3.0.1
    and in the following ejbql query:

         "SELECT COUNT(u) FROM User u WHERE u.username like :usernam AND
    u.userInfo.name like :userName"
         eq.setParameter("userName", null);
         eq.setParameter("usernam", "msabo");

    results in java.lang.ClassCastException:
    org.apache.cayenne.ejbql.parser.EJBQLPatternValue cannot be cast to
    org.apache.cayenne.ejbql.parser.EJBQLEquals

    Regards,

    -- 
    Marek Å abo
    



    This archive was generated by hypermail 2.0.0 : Sun Nov 21 2010 - 16:19:26 UTC