【发布时间】:2014-07-16 22:13:43
【问题描述】:
我正在尝试在 Google App Engine 上对我的数据存储进行查询。我的应用程序是这样的:
String parametroDate = "_createdAt";
CloudQuery cq1 = new CloudQuery("Clip");
cq1.setScope(Scope.PAST);
Filter userFilter = Filter.eq("clip_user", main.user.getUsername().toLowerCase()); // This filter on its own works fine
Calendar cal = Calendar.getInstance(); // Get my time
Date date = new Date();
date.setMillis(cal.getTimeInMillis());
cal.set(Calendar.HOUR, 0); // And set to 00:00:00
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
date.setMillis(cal.getTimeInMillis());
Filter userMayorqueHoy = Filter.ge(parametroDate, date); // Greather than today at 00:00:00
cq1.setFilter(Filter.and(userFilter, userMayorqueHoy));
Date 类是 org.apache.tools.ant.types.resources.selectors.Date 来自 AppEngine 的库。我也试过java.sql.Date。在这两种情况下,结果都是一样的:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 错误的请求
{
“代码”:400,
“错误”:[
{ "domain": "global", "message": "_createdAt: java.util.LinkedHashMap is not a supported property type.", "reason": "badRequest" }],
"message": "_createdAt: java.util.LinkedHashMap 不受支持 属性类型。”
}
在我的 DataStore 中,它是 Date 类型。
这是查询:
{filterDto={operator=AND, subfilters=[{operator=EQ, values=[clip_user, franexp]}, {operator=GE, values=[_createdAt, org.apache.tools.ant.types.resources.selectors.Date@43367c00]}]}, kindName=Clip, scope=PAST}
提前致谢。
【问题讨论】:
标签: android google-app-engine google-cloud-datastore