对象化 - 按参考排序

Objectify - Order by reference

是否可以在 Objectify 中按引用对象的字段排序?

示例:

public class Foo {
    @Id private long id;
    @Index Ref<AnObject> ref;
}

public class AnObject {{
    @Id private long id;
    @Index name;
}

然后我尝试执行此查询但它不起作用:

Query<Foo> query =  ofy().load().type(Foo.class)
        .limit(Constants.DATASTORE_LIMIT)
        .order("ref.name");

谢谢。

恐怕不会。这不是数据存储支持的东西。它不能进行连接。

基本上有两种方法可以解决该限制:

  1. 非规范化并将 'name' 数据的索引副本放入您的 Foo 对象中。您可以使用 @OnSave 方法自动执行此操作。缺点是如果有变化需要记得更新两处的数据

  2. 自己做查询规划器的工作。查询相关的AnObjects,然后查询相关的Foos。