【问题标题】:Objectify query result mystery客观化查询结果之谜
【发布时间】:2015-07-14 01:27:26
【问题描述】:

我有一个 String 类型的带有 @Id 的实体,并且我设法插入了一条记录。

当我执行下面的查询时,我可以看到查询返回的记录:

ofy().transactionless().load().type(Score.class).first().now();

但是,当我尝试通过 id() 方法查询时,我得到了零记录。

ofy().transactionless().load().type(Score.class).id("idstring").now;

知道我可能错过了什么吗?

谢谢!

【问题讨论】:

    标签: android google-app-engine objectify


    【解决方案1】:

    您的第一个查询只是在数据存储区中生成第一个 Score 实体。第二个查询是寻找一个特定的键。您可能指定的 id 不正确。

    此外,您几乎可以肯定不需要 transactionless() - 这是一个非常特殊的用例。

    【讨论】:

    • 嗨,Stickfigure:我验证了 id 值(从数据存储查看器复制和粘贴)。这是我无法解开的谜团。只有一条记录,所以我应该得到第二条语句返回的记录。我使用 transactionless() 的原因,因为我使用 Work()/run() 调用它......我无法在此方法中运行非父查询。
    • 如果没有更多信息(即,围绕此的所有代码),很难给您任何建议。但是,我可以 100% 自信地告诉您,如果您使用 type().id() 方法加载实体并且没有得到预期的结果,那是因为您针对 vis 错误地指定了键数据存储区中有什么。也许您忽略了@Parent?
    • Stickfigure ...您可能会在这里找到一些东西。该实体确实有@parent 字段。我还注意到一些“有趣”的事情:我插入了填充了父字段的记录,但它没有显示在数据存储查看器中。我想知道这是否导致查询失败。还有更多见解吗?谢谢!
    猜你喜欢
    • 2019-04-23
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 2013-11-01
    • 2020-02-03
    相关资源
    最近更新 更多