|
Home > Archive > Apache JDO Project > November 2006 > IN operator missed?
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
IN operator missed?
|
|
| Luca Garulli 2006-11-13, 1:11 pm |
| 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
| |
| Erik Bengtson 2006-11-13, 1:11 pm |
| Why not? Have you tried with JPOX ?
Quoting Luca Garulli <l.garulli@orientechnologies.com>:
> 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
>
>
|
|
|
|
|