Как добиться SQL IN запроса в JDOQL? - PullRequest
0 голосов
/ 20 июля 2011

Является ли этот JDOQL таким же как следующий 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;

1 Ответ

1 голос
/ 20 июля 2011

Да.Помните, что запросы in преобразуются в несколько запросов к хранилищам данных и поэтому не особенно эффективны - если вы можете избежать их, сделайте.

...