开发者

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");       
    que开发者_如何转开发ry.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;


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜