繁体   English   中英

使用objectify按多列排序

[英]Sort by multiple columns with objectify

我想知道,如果有一种方法可以使用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进行排序。 实际上,如果您拥有正确的多属性索引,那么您的问题中的查询应该可以正常工作。

例如,如果要按日期和creatorId(从队列中获取这些字段)对结果进行排序,则需要在项目的“datastore-indexes.xml”文件中包含以下索引:

<datastore-index kind="Operation " ancestor="false">
    <property name="date " direction="asc" />
    <property name="creatorId" direction="asc" />
</datastore-index>

请注意,这只是一个例子。 “祖先”,“方向”的实际值取决于您的要求。

另一种选择是自动生成所需的索引。 如果在GAE开发服务器上运行应用程序,开发服务器将自动生成带有所需索引的数据存储区索引文件(WEB-INF / appengine-generated / datastore-indexes-auto.xml)。

你可以在这里阅读更多相关信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM