Google app engine 如何在数据存储的JDO中实现无父实体的强一致性

Google app engine 如何在数据存储的JDO中实现无父实体的强一致性,google-app-engine,google-cloud-datastore,jdo,Google App Engine,Google Cloud Datastore,Jdo,这是我的简单实体: import com.google.appengine.api.datastore.Key; import javax.jdo.annotations.IdGeneratorStrategy; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; @Persisten

这是我的简单实体:

import com.google.appengine.api.datastore.Key;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

@PersistenceCapable 

public class Food {

    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key id;
    @Persistent
    private String name;
    @Persistent
    private String description;
    public Key getId() {
        return (id);
    }
    public void setId(Key id) {
        this.id = id;
    }
    public String getName() {
        return (name);
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return (description);
    }
    public void setDescription(String description) {
        this.description = description;
    }
}
我用这种方式加载我的食物列表:

try {
            pm = PMF.get().getPersistenceManager();
            Query q = pm.newQuery(Food.class);
            foods = (List<Food>) q.execute();
        } catch (Exception exc) {
            exc.printStackTrace();
        }
        finally {
            pm.close();
        }
试试看{
pm=PMF.get().getPersistenceManager();
查询q=pm.newQuery(Food.class);
食品=(列表)q.execute();
}捕获(异常exc){
exc.printStackTrace();
}
最后{
pm.close();
}

为每个食品实体自动生成密钥。我也在使用HRD。所以上面的查询(pm.newQuery(Food.class);)的一致性不强,一次返回所有结果,第二次不返回新创建的食物。如何以这样的方式更改此查询,每次我从数据库中获取所有食物时。在数据存储文档中,我读过应该是祖先查询,但我没有祖先路径。(我应该说我是数据存储新手,仍然从昨天开始学习,但这次花了我很多时间)。请帮帮我

关于App engine数据存储和强一致性的两个优秀且易于理解的视频:

第1部分:

第2部分:数据存储查询、索引和事务


关于App engine数据存储和强一致性的两个优秀且易于理解的视频:

第1部分:

第2部分:数据存储查询、索引和事务


关于App engine数据存储和强一致性的两个优秀且易于理解的视频:

第1部分:

第2部分:数据存储查询、索引和事务


关于App engine数据存储和强一致性的两个优秀且易于理解的视频:

第1部分:

第2部分:数据存储查询、索引和事务


如果不使用父级,则无法实现强一致性。这就是重点。要么使用祖先,要么接受有时查询结果会过时的事实(并使用例如memcache来解决这个问题)


如果不使用父级,则无法实现强一致性。这就是重点。要么使用祖先,要么接受有时查询结果会过时的事实(并使用例如memcache来解决这个问题)


如果不使用父级,则无法实现强一致性。这就是重点。要么使用祖先,要么接受有时查询结果会过时的事实(并使用例如memcache来解决这个问题)


如果不使用父级,则无法实现强一致性。这就是重点。要么使用祖先,要么接受有时查询结果会过时的事实(并使用例如memcache来解决这个问题)


如果不使用父级,则无法实现强一致性。这就是重点。要么使用祖先,要么接受有时查询结果会过时(并使用例如memcache来解决这一问题)。如果不使用父级,就无法实现强一致性。这就是重点。要么使用祖先,要么接受有时查询结果会过时(并使用例如memcache来解决这一问题)。如果不使用父级,就无法实现强一致性。这就是重点。要么使用祖先,要么接受有时查询结果会过时(并使用例如memcache来解决这一问题)。如果不使用父级,就无法实现强一致性。这就是重点。要么使用祖先,要么接受有时查询结果会过时的事实(并使用例如memcache来解决这个问题)。