db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Bouschen <mbo.t...@spree.de>
Subject Re: IN operator missed?
Date Mon, 13 Nov 2006 17:14:14 GMT
Hi Luca,

Craig is right, I overlooked you tried to declare list as a variable. So 
the query works if you declare list as a parameter, so calling 
query.declareParameters("java.util.Collection list" ) instead of 
query.declareVariables.

Regards Michael
> Hi Luca,
>
> the JDOQL query you specified below should work as it is today. As you 
> said the contains operator expects a collection on the left. This 
> collection may be a collection parameter and does not need to be a 
> collection field.
>
> Regards Michael
>
>> Hi,
>> Working in real-world applications using JDO 2.0 I beware about the 
>> SQL IN
>> equivalend operator missed by spec. An example:
>>
>> public class Questionnaire{
>>   ...
>>   private Employee employee;
>>   ...
>> }
>>
>> I'd like to get any Questionnaire instances for the following employee:
>> Luca, Robert and Chris. The CONTAINS operator works only on 
>> collection, but
>> it could be useful to execute a query like this:
>>
>> List<Employee> list= new ArrayList<Employee>();
>> // LET'S THINK E1-E2-E3 are loaded before
>> List.add( e1 );
>> List.add( e2 );
>> List.add( e3 );
>>
>> Query query = iManager.newQuery();
>> query.setClass( Questionnaire.class );
>> query.setFilter( "list.contains( employee )" );
>> query.declareVariables( "java.util.Collection list" );
>> query.execute( list );
>>
>> JDO implementation should translate the query by using SQL IN 
>> operator and
>> the OID of Employee objects contained in the LIST collection passed as
>> parameter.
>>
>> What do you think?
>>
>> Bye,
>> Luca Garulli
>> CTO of Asset Data srl
>> www.RomaFramework.org
>>   
>
>


-- 
Michael Bouschen		Tech@Spree Engineering GmbH
mailto:mbo.tech@spree.de	http://www.tech.spree.de/
Tel.:++49/30/235 520-33		Buelowstr. 66
Fax.:++49/30/2175 2012		D-10783 Berlin


Mime
View raw message