【问题标题】:Objectify - fetching next and previous recordsObjectify - 获取下一条和上一条记录
【发布时间】:2013-01-09 02:05:50
【问题描述】:

我正在开发一个托管在 Google AppEngine 上的应用程序。我正在使用 Objectify 进行数据操作。考虑一个示例 Kind

Kind: Person
ID   Name
100  Santhosh
101  Upendar
102  Suresh
103  Naresh

我想在获取当前记录的同时获取上一条和下一条记录。例如,如果我想获取 Person id 102,我也想获取 101 和 103。我不想拆分这些查询,因为这会影响数据操作的数量。

有没有一种方法/构造可以在这种情况下使用。

谢谢

桑托什

【问题讨论】:

    标签: google-app-engine objectify


    【解决方案1】:

    显而易见的解决方案是简单地查询其他 ID

    ofy().load().type(Person.class).ids(101L, 102L, 103L);
    

    如果您希望 objectify 为您执行此操作,您需要将您的 Person 类更改为类似

    @Entity
    class Person {
        @Id Long id;
        // Other attributes here
        @Load Ref<Person> previousPerson; 
        @Load Ref<Person> nextPerson; 
    }
    

    但如果您插入或删除新元素,则必须更新引用。我怀疑使用数据存储是否会有效。

    【讨论】:

    • 嗨 JoSo - 抱歉,我说的是动态数据。 IE。;我会有1000条这样的记录。当我获取一个特定的 ID 时,我想获取上一个和下一个 ID。谢谢你的建议。我想避免在插入数据时填充下一个/上一个 id。
    • 上面提到的解决方案是我唯一能想到的。 Objectify 非常接近数据存储低级 API,它根本无法满足您的要求。如果您的 id 是连续的,第一个建议将适用于 fetchId-1、fetchId、fetchId+1,但是您是对的,这几乎不适用于动态数据。根据您的用例,您可以尝试更改数据模型,因此不再需要反向引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多