我一直在考虑如何将这个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查询,所以希望您能分享一些见解。
答案 0 :(得分: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);