Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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 GAE数据存储加入+分组依据_Java_Google Cloud Datastore - Fatal编程技术网

Java GAE数据存储加入+分组依据

Java GAE数据存储加入+分组依据,java,google-cloud-datastore,Java,Google Cloud Datastore,注意:我已经看到了加入GAE相关的帖子,但在我的 要求让我做了一个新的职位,我已经做了自己的解决方案,我想看看它有多好 数据存储实体属性和数据库类型 实体:PartyEntity让我们称之为 字符串partyName 字符串partyId 布洛基图像 实体:InsertEntity将其称为b 字符串partyIdentifier 字符串名 连续选区 客观的 从a.partyId=b.partyIdentifier组的b.b.选区上的加入b中选择*; 下面我将回答我的问题,代码运行良好,建议我任何

注意:我已经看到了加入GAE相关的帖子,但在我的 要求让我做了一个新的职位,我已经做了自己的解决方案,我想看看它有多好

数据存储实体属性和数据库类型

实体:PartyEntity让我们称之为

字符串partyName 字符串partyId 布洛基图像 实体:InsertEntity将其称为b

字符串partyIdentifier 字符串名 连续选区 客观的

从a.partyId=b.partyIdentifier组的b.b.选区上的加入b中选择*; 下面我将回答我的问题,代码运行良好,建议我任何更改或更好的方法我只是一名学生

我的解决方案如下,建议任何更改或更好的方法

//从PartyEntity保存唯一partyId中选择* 对于每个partyId,从b中选择*

//按选区分组条款部分


如果您有工作代码,您可能希望将其发布到code Review,而不是StackOverflow@AndyG我现在如何移动它?
private List<ListDisplay> initData() {

        DatastoreService datastore = DatastoreServiceFactory
                .getDatastoreService();

        List<ListDisplay> data = new ArrayList<ListDisplay>();

        Query query = new Query("PartyEntity");
        PreparedQuery preparedQuery = datastore.prepare(query);
        List<Entity> entities = preparedQuery.asList(FetchOptions.Builder
                .withDefaults());

        for (Entity entity : entities) {

            String PARTY_ID = (String) entity.getProperty("partyId");

            // fetch from another
            Query query2 = new Query("InsertEntity");
            Filter filterByPartyId = new Query.FilterPredicate(
                    "partyIdentifier", FilterOperator.EQUAL, PARTY_ID);
            query2.setFilter(filterByPartyId);
            PreparedQuery preparedQuery2 = datastore.prepare(query2);

            List<Entity> entities2 = preparedQuery2.asList(FetchOptions.Builder
                    .withDefaults());

            for (Entity entity2 : entities2) {
                ListDisplay display = new ListDisplay();
                display.setPartyId((String) entity.getProperty("partyId"));
                display.setPartyName((String) entity.getProperty("partyName"));
                display.setImage((BlobKey) entity.getProperty("image"));
                display.setName((String) entity2.getProperty("name"));
                display.setConstituency((String) entity2
                        .getProperty("constituency"));
                data.add(display);
            } // end loop entity2

        } // end loop entity

        return data;
    }
public HashMap<String, List<ListDisplay>> getData() {
        HashMap<String, List<ListDisplay>> data = new HashMap<>();
        List<ListDisplay> list = initData();

        for (ListDisplay d : list) {
            // if null add
            if (data.get(d.getConstituency()) == null) {
                List<ListDisplay> internal = new ArrayList<>();
                internal.add(d);
                data.put(d.getConstituency(), internal);
            }
            // else modify
            else {
                List<ListDisplay> hashlist = data.get(d.getConstituency());
                hashlist.add(d);
                data.remove(d.getConstituency());
                data.put(d.getConstituency(), hashlist);
            }
        }

        return data;
    }