我有一个非常简单的代码,我将一些实体添加到数据存储区。
public final class storageUtil {
private static DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
public static Iterable<Entity> getAllEntities(String kind) {
Query q = new Query(kind);
PreparedQuery pq = datastore.prepare(q);
return pq.asIterable();
}
public static void putEntity(Entity entity) {
datastore.put(entity);
}
}
如果我调用putEntity(myEntity)然后调用getAllEntities(myKind),则新放置的实体将仅在返回列表中显示2次中的3次。
如果我在put之后立即调用datastore.get(myKey),它将始终返回新放入的条目。
任何人都可以告诉我发生了什么事吗?
答案 0 :(得分:0)
您使用的是什么类型的DataStore? 这是一个高复制(默认)数据存储区? 你在测试真实的服务器(不是开发人员吗?) 如果是这样,由于“最终一致”的行为,这种行为有点预期。
Using the High Replication Datastore
是你应该开始寻找解决方法的方法
答案 1 :(得分:0)
使用交易将您的实体放入数据存储区,here您将找到一个示例。