Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数据存储google app engine查询特定字段,不带子字段_Java_Google App Engine_Datastore - Fatal编程技术网

Java 数据存储google app engine查询特定字段,不带子字段

Java 数据存储google app engine查询特定字段,不带子字段,java,google-app-engine,datastore,Java,Google App Engine,Datastore,我试图优化我的GAE。 这是我的模型: 游戏:身份,状态,玩家。。。和清单圆形:id, 名称,描述 我得到了游戏和回合之间的关系:1-N 问题是我不能要求一场比赛没有他的全面或具体领域 我已经试过了: Query query = pm.newQuery(Game.class); ArrayList<Game> allgame = new ArrayList<Game>(); query.setResult("id, status"); allgame.addAll((Co

我试图优化我的GAE。 这是我的模型:

游戏:身份,状态,玩家。。。和清单
圆形:id, 名称,描述

我得到了游戏和回合之间的关系:1-N

问题是我不能要求一场比赛没有他的全面或具体领域

我已经试过了:

Query query = pm.newQuery(Game.class);
ArrayList<Game> allgame = new ArrayList<Game>();
query.setResult("id, status");
allgame.addAll((Collection<? extends Game>) query.execute());
Query Query=pm.newQuery(Game.class);
ArrayList allgame=新的ArrayList();
query.setResult(“id,status”);

allgame.addAll((Collection当JDO从数据存储中检索对象时,只检索被调用的获取组。默认情况下不检索未索引的属性,包括文本和Blob。这意味着序列化字段值(作为轮对象)默认情况下不会检索。这称为延迟加载*

要仅获取某些字段,可以使用如下查询:

        query = pm.newQuery("SELECT status, players FROM " +
                Game.class.getName() + " WHERE xy == :xy);
请记住,在这种情况下,必须为检索的字段编制索引

希望这有帮助


*REF:

好的,这是工作。现在我明白了FetchGroup的意思。默认情况下,这是真的,我将它改为False,它的工作@Persistent(mappedBy=“gameParent”,defaultFetchGroup=“False”)private List roundList=new ArrayList();但现在查询的答案是一个对象,如何检索字段?没错。您必须手动检索字段,如下所示:键入fieldvalue=listObject.get(0..n)[0..n];我不知道任何奇特的方法。我无法获取对象中的数据,因为我请求了许多字段。
        query = pm.newQuery("SELECT status, players FROM " +
                Game.class.getName() + " WHERE xy == :xy);