Chris,

I just added a few similar unit tests to 3.0 and they seem to work just fine, matching on custom types in the IN list. Could you possibly try to upgrade to 3.0M2 and see if the problem is still there?

Thanks
Andrus



On Nov 27, 2007, at 11:56 PM, Chris Gamache 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 <[EMAIL PROTECTED]> 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





Reply via email to