Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Android 根据链接接收对象是不可能的_Android_Mongodb_Datastore_Kinvey - Fatal编程技术网

Android 根据链接接收对象是不可能的

Android 根据链接接收对象是不可能的,android,mongodb,datastore,kinvey,Android,Mongodb,Datastore,Kinvey,按照我创建对象的文档中的规定,我填充对象的属性并将链接保存在数据存储中: public class InvitationEntity extends GenericJson { @Key public String objectId; @Key public int status; @Key("_id") public String id; @Key public String name; } public class EventE

按照我创建对象的文档中的规定,我填充对象的属性并将链接保存在数据存储中:

public class InvitationEntity extends GenericJson {
    @Key
    public String objectId;
    @Key
    public int status;
    @Key("_id")
    public String id;
    @Key
    public String name;
}
public class EventEntity extends GenericJson {
    @Key
    public String name;
    @Key
    public String eventDate;
    @Key
    public String location;
    @Key
    public String tip;
    @Key
    public KinveyReference invitations;

    public void initReference(InvitationEntity myInvitation){
        KinveyReference reference = new KinveyReference("invitationCollection", myInvitation.get("_id").toString());
        this.invitations = reference;
    }
}

...

 InvitationEntity invitationEntity = new InvitationEntity();
 invitationEntity.name = "3";
 invitationEntity.objectId="3";
mKinveyClient.appData("invitationCollection", InvitationEntity.class).save(invitationEntity, new KinveyClientCallback<InvitationEntity>() {
                @Override
                public void onSuccess(InvitationEntity invitationEntity1) {
                    Log.e("my", "Ok1 " + invitationEntity1.toString());

                    EventEntity eventEntity = new EventEntity();
                    eventEntity.tip = "33";
                    eventEntity.initReference(invitationEntity1);
                    mKinveyClient.appData("eventCollection", EventEntity.class).save(eventEntity, new KinveyClientCallback<EventEntity>() {
                        @Override
                        public void onSuccess(EventEntity eventEntity_rez) {
                            Log.e("my", "Ok2 " + eventEntity_rez.toString());
                        }

                        @Override
                        public void onFailure(Throwable t) {
                            Log.e("my", "Failed to save entity " + t.getMessage());
                        }
                    });
                }

                @Override
                public void onFailure(Throwable t) {
                    Log.e("my", "Failed to save entity " + t.getMessage());
                }
            });
希望收到:

{"invitations":{"_id":"52715e5b13dde23677021c80",
                             "name":"3",
                             "objectId":"3",
                             "status":0,
                             "_acl":{"creator":"526182566bbfcbf429000518"},
                             "_kmd":{"lmt":"2013-10-30T19:30:35.912Z",
                                               "ect":"2013-10-30T19:30:35.912Z"},
                                               "kid":"kid_TTpvqRShiO",
                                               "collection":"invitationCollection"},
"tip":"33",
"_acl":{"creator":"526182566bbfcbf429000518"},
"_kmd":{"lmt":"2013-10-30T19:30:36.086Z",
                 "ect":"2013-10-30T19:30:36.086Z"},
"_id":"52715e5c13dde23677021c81",
"kid":"kid_TTpvqRShiO",
"collection":"eventCollection"}

如何接收对象,使其中没有链接,而是有其他对象?

我是Kinvey的工程师,可以帮助您解决这个问题--我在我们的网站上发布了相同的答案,但我想其他人可能会在这里发现它:

这不是不可能的

在Appdata上,Get和GetEntity方法有多种变体。在这里查看javadocs:

要解析KinveyReferences,请将包含要解析的字段名称的字符串[]作为第二个参数传递给get方法,如果您想使用:

mKinveyClient.appData("eventCollection", EventEntity .class).get(q, new String[]{"invitations"}, new KinveyListCallback() { ... }
现在,onSuccess回调将返回一个EventEntity,但引用已解析,您可以调用:

InvitationEntity myInvite = results[0].getInvitations.getTypedObject(InvitationEntity.class);

请帮助如何使链接被替换为真实对象?
mKinveyClient.appData("eventCollection", EventEntity .class).get(q, new String[]{"invitations"}, new KinveyListCallback() { ... }
InvitationEntity myInvite = results[0].getInvitations.getTypedObject(InvitationEntity.class);