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 16:07:42 GMT
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