Re: ExtendedType and IN operator

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Fri Nov 30 2007 - 05:08:06 EST

  • Next message: Robert Zeigler: "recurring java.il.EOFException in mysql driver"

    Yes, the information is sufficient, but I need to find time to
    actually take a look at it.

    Andrus

    On Nov 30, 2007, at 5:55 AM, Chris Gamache wrote:
    > Was this enough code to make a determination?
    >
    > On Nov 27, 2007 4:56 PM, Chris Gamache <cgamach..mail.com> wrote:
    >> Exact Cayenne Version is 2.0.3
    >>
    >> Here's the query builder...
    >>
    >> public static List selectMulti(final DataContext context,final
    >> ArrayList<UUID> userUuids, final Date fromDate, final Date toDate,
    >> final int status) {
    >>
    >> ArrayList<Expression> expList = new
    >> ArrayList<Expression>();
    >>
    >> //this is where the trouble is...
    >> if (userUuids != null && userUuids.size() > 0)
    >> expList.add(ExpressionFactory.inExp(TodOrders.USER_UUID_PROPERTY,
    >> userUuids));
    >>
    >>
    >> if (fromDate != null && toDate != null) {
    >>
    >> expList
    >> .add(ExpressionFactory.betweenExp(TodOrders.TRANS_DATE_PROPERTY,
    >> fromDate, toDate));
    >> } else if (fromDate != null && toDate == null) {
    >>
    >> expList
    >> .add
    >> (ExpressionFactory.greaterOrEqualExp(TodOrders.TRANS_DATE_PROPERTY,
    >> fromDate));
    >> } else if (fromDate == null && toDate != null) {
    >>
    >> expList
    >> .add(ExpressionFactory.lessOrEqualExp(TodOrders.TRANS_DATE_PROPERTY,
    >> toDate));
    >> }
    >>
    >> if (status == 1) {
    >>
    >> expList
    >> .add(ExpressionFactory.matchExp(TodOrders.FULFILLED_PROPERTY, null));
    >> } else if (status == 2) {
    >>
    >> expList
    >> .add(ExpressionFactory.noMatchExp(TodOrders.FULFILLED_PROPERTY,
    >> null));
    >> }
    >> SelectQuery orderQuery = new
    >> SelectQuery(TodOrders.class,ExpressionFactory.joinExp(Expression.AND,
    >> expList));
    >> orderQuery.addOrdering(new
    >> Ordering(TodOrders.TRANS_DATE_PROPERTY, true));
    >>
    >> return context.performQuery(orderQuery);
    >>
    >>
    >> }
    >>
    >>
    >> On Nov 26, 2007 7:42 AM, Andrus Adamchik <andru..bjectstyle.org>
    >> wrote:
    >>> Chris,
    >>>
    >>> I vaguely remember this being a problem in the past and us fixing
    >>> it... I couldn't find any references via Google (having "IN" as a
    >>> keyword doesn't help). So could you post the code that builds the
    >>> query and the exact Cayenne version.
    >>>
    >>> Thanks
    >>> Andrus
    >>>
    >>>
    >>>
    >>> On Nov 23, 2007, at 3:39 AM, Chris Gamache wrote:
    >>>
    >>>> I'm using Cayenne2 and PostgreSQL.
    >>>>
    >>>> For any single R-value in a where clause, my ExtendedType is
    >>>> working
    >>>> wonderfully. But! If I create an expression which uses the operator
    >>>> IN, my ExtendedType doesn't seem to get called. In the query logger
    >>>> everything looks okay, but pgjdbc complains in the same way that it
    >>>> would if there were no exended type. That leads me to believe
    >>>> either
    >>>> that Cayenne is ignoring ExtendedTypes when it does the JDBC
    >>>> binding
    >>>> for the R-value list, or that I've left out a detail in my
    >>>> ExtendedType class which is the culprit. I can post my ExtendedType
    >>>> code and some code that misbehaves. Will that suffice, or would you
    >>>> need more?
    >>>>
    >>>> CG
    >>>>
    >>>
    >>>
    >>
    >



    This archive was generated by hypermail 2.0.0 : Fri Nov 30 2007 - 05:08:42 EST