繁体   English   中英

使用祖先强制对GAE进行客体化

[英]Force strong consistency with objectify on GAE using ancestors

据我所知,有一个具有祖先的客体查询的对象应该以强一致性查询,这意味着我应该始终获得最新的对象吗?

似乎并非如此。

以下是从数据存储中提取数据的示例:

  Key<Rule> k = Key.create(Key.create(NinjaAccount.class, accountId), Rule.class, ruleId);
  return ofy().consistency(Consistency.STRONG).load().key(k).now();

或者查询多个实体:

return ofy().consistency(Consistency.STRONG).load().type(Rule.class).ancestor(Key.create(NinjaAccount.class, accountId))
    .list();

但是,当我更新Rule对象上的一个字段时,我可以连续多次运行此代码并让它在新值和旧值之间来回切换。 我究竟做错了什么?? 我几乎准备好切换到mysql,但我希望有一些小的我误解。

您发布的代码没有任何问题。 此外,一致性(Consistency.STRONG)调用是不必要的; 默认情况下,按键和祖先查询非常一致。

问题不是最终的一致性。

您使用旧版本的Objectify而忽略了安装ObjectifyFilter吗? 从历史上看,这是最可能出现的问题(在常见问题解答中)。 但是,如果你没有安装过滤器,最近版本的Objectify会抛出一个异常,所以如果你是最新版本,那就是其他东西了。

暂无
暂无

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

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