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                [EMAIL PROTECTED] Engineering GmbH
mailto:[EMAIL PROTECTED]        http://www.tech.spree.de/
Tel.:++49/30/235 520-33         Buelowstr. 66
Fax.:++49/30/2175 2012          D-10783 Berlin

Reply via email to