0

我一直在考虑如何将此 JDO 查询转换为 Objectify 查询,但我只能找到listByProperty无法应用此类过滤器的函数:

Date expiry = new Date(new Date().getTime() - MAX_TIME);
Query query = pm.newQuery(User.class, "someProperty == null && " +
          "lastModified < dateParam");
query.declareParameters("java.util.Date dateParam");
query.setOrdering("lastModified asc, created asc");
query.setRange(0, 2);
List<User> users = (List<User>) query.execute(expiry);

listByProperty 的代码:

public List<T> listByProperty(String propName, Object propValue)
{
    Query<T> q = ofy().query(clazz);
    q.filter(propName, propValue);
    return asList(q.fetch());
}

我不熟悉 JDO 查询,因此希望您能分享一些见解。

4

1 回答 1

4

在 Objectify3 中:

ofy.query(User.class)
    .filter("someProperty", null)
    .filter("lastModified <", expiry)
    .order("lastModified")
    .order("created")
    .limit(2);

在 Objectify4 中:

ofy.load().type(User.class)
    .filter("someProperty", null)
    .filter("lastModified <", expiry)
    .order("lastModified")
    .order("created")
    .limit(2);
于 2012-04-19T14:39:48.380 回答