【发布时间】:2014-01-28 13:08:55
【问题描述】:
我想知道,是否有一种方法可以使用 2 列而不只是一个列对查询进行排序。我很确定query.order("param1").order("param2") 忽略了一个参数。
是否可以对多列使用 objectify 进行排序?
这是我的@Entity
@Entity
public class Operation {
@Id protected Long id;
@Index protected Long creatorId;
@Index protected Long categoryId;
@Index protected Double value;
@Index protected String description;
@Index protected Date date;
}
【问题讨论】:
-
有趣的问题!这在 Objectify 文档中并不明显,但根据 Jeff 对此question 的回复,这是可能的。您选择的排序组合是否有自定义索引?
-
您的示例应该可以工作,只需多次调用
order()。如果您没有得到结果并且定义了正确的多属性索引,则应该发布更多详细信息。请注意,id不是可以排序的真实字段(但__key__是)。 -
我没有自定义索引,不确定如何制作。我读过这个小组,但没有解决方案,只有线索,正如你所注意到的那样
-
如果你想,说,“ORDER BY categoryId ASC, date DESC”,你需要一个自定义索引来支持这个。 This page 应该有帮助。
-
.order("param1").order("param2") 是否等同于“ORDER BY param1, param2”或“ORDER BY param2, param1”?
标签: java google-app-engine objectify