angelokh
angelokh

Reputation: 9428

How to achieve SQL IN query in JDOQL?

Are this JDOQL same as the following SQL?

Query query = pm.newQuery(Vote.class, ":p.contains(personId)");

if (startDate != null) {
    query.setFilter("personId == listOfIds && createdDate > startDateParam");       
    query.declareParameters("java.util.List listOfIds, java.util.Date startDateParam");     
}
else {
    query.setFilter("personId == :listOfIds");

}   
query.setOrdering("createdDate desc");

List<Vote> list = (List<Vote>) query.execute(listOfIds, startDate);

SELECT * FROM VOTE
WHERE persionID IN (id1, id2..)
AND createdDate > '2011-07-11'
ORDER BY createdDate desc;

Upvotes: 0

Views: 85

Answers (1)

Nick Johnson
Nick Johnson

Reputation: 101149

Yes. Bear in mind that 'in' queries translate to multiple underlying datastore queries, and so aren't particularly efficient - if you can avoid them, do.

Upvotes: 1

Related Questions