cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: ExtendedType and IN operator
Date Fri, 30 Nov 2007 10:08:06 GMT
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 <cgamache@gmail.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 <andrus@objectstyle.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
>>>>
>>>
>>>
>>
>


Mime
View raw message