我在GAE数据存储区中存储了数千个实体,其中“创建”字段保存为日期String
(标准格式)。
我的问题是,是否仍然可以这样做Query
:
Query q = new Query("Post")
.addSort("created", SortDirection.DESCENDING);
“created
”实际上是一个日期字符串,存储方式如下:2014-12-11T14:31:43 -08:00"
并实际上得到一个降序。我已经尝试过,但结果集也是随机的,甚至按日期排序。
有没有办法调整GAE Query
来实现这一目标?
答案 0 :(得分:2)
即使GAE已将日期索引为字符串,因此'2014-12- 11 T14:31:43 -08:00'出现在'2014-12- 04 之后T14:31:43-08:00'(仅举例),这意味着应遵循自然排序顺序。
您是否已将“已创建”字段编入索引?如果没有,GAE将忽略您在查询中提供的排序顺序。
答案 1 :(得分:0)
它不会那样工作。
您需要将该属性设为日期类型。
import java.util.Date;
Date created = new Date();
Post.setProperty("created", created);
也许您可以执行任务来更新所有实体,并将创建的字符串实际转换为日期并保存。