java - 按键排序 - 对象化

标签 java google-app-engine google-cloud-datastore objectify

我正在尝试通过 Java 中的 Objective 查询 App Engine 数据存储。

我在本地存储了一些虚拟数据,但我无法实现按键排序的结果。

这些是类:

父类:

@Entity
public class Parent
{
    @Getter
    @Setter
    @Id
    long id;

    @Getter
    @Setter
    String type;

    public Parent() {
    }
}

主类

@Entity
@Cache
@Index
public class MainObject
{
    @Getter
    @Setter
    @Id
    long id;

    @Getter
    @Setter
    @Unindex
    String url;

    @Getter
    @Setter
    Date date;

    @Parent
    @Getter
    @Setter
    Key<Parent> type;

    public MainObject() {

    }
}

问题是我想得到这个查询:

Key<Parent> parent = Key.create(Parent.class, 1);

MainObjectlastUrl = OfyService.ofy().load().type(MainObject.class).ancestor(parent).order("-key").first().now();

这将返回 null。

List<MainObject> list = OfyService.ofy().load().type(MainObject.class).ancestor(parent).order("-key").list();

这将返回一个空列表。

但如果我删除订单查询,我将获得所有实体。

list = OfyService.ofy().load().type(MainObject.class).ancestor(parent).list();

有什么想法吗?

我查看了 Objectify 网页,但找不到太多内容。

提前致谢。

最佳答案

表示键的神奇 Google 字段是 __key__(每边两个下划线)。这是 GAE 内置的,因此您需要 order("-__key__")

Objectify 可以在查询时提供一个 orderKey(boolean) 方法,使这稍微方便一些。如果您将它添加到问题跟踪器,我会实现它。

关于java - 按键排序 - 对象化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23149390/

相关文章:

java - 如何在hibernate继承中使用父id获取数据

python - 使用 HTML 中嵌入的 Python 代码对数字进行平均

django - 在 django 项目中配置谷歌云数据存储

java - 从 Google Datastore 获取对象后,该对象为空

database - 在 Datastore 中为 bool 值或类似枚举的属性编制索引对于快速写入来说是个坏主意吗?

java - 写入太频繁,数据存储争用超时

java - 使用javafx在Web View 中查看嵌入Flash源的html文件

java - RSA Ruby 和 Android 填充问题

java - 如何将我创建的以下 Java 代码写入驱动程序并调用方法/类?

google-app-engine - GAE : Enabling Edge Cache with webapp2 (Python)