这是我用来在GAE数据存储中保存数据的方法。数据正在保存,但在此方法的return语句中,我正在检索已保存的对象并返回它,它返回null,帮助我解决此问题。
public UserInfo saveEmergencyUserInfo(UserInfo userInfo) {
Key userInfoKey = ofy().save().entity(userInfo).now();
return ofy().load().type(userInfo.class).filterKey(userInfo).first().now();
}
答案 0 :(得分:2)
如果您阅读Datastore writes and data visibility,这是正常的。设计您的应用程序,使其在写入之前能够容忍延迟,然后才能进行读取。一种方法是使用Memcache缓存最近写入的数据。这种设计方法有时称为Command & Query Responsibility Segregation,对于解耦子系统和提高应用程序可伸缩性非常有用。
答案 1 :(得分:1)
您遇到了#34;最终的一致性"。如果您需要能够立即查询新写入的数据,请参阅前面的路径,有关常规讨论,请参阅Balancing Strong and Eventual Consistency,有关Java SDK的详细信息,请参阅Structuring Data for Strong Consistency。