1

我想在我的类对象中使用“引用”类型的字段。我不确定如何在 Java POJO 对象中定义它 - 我尝试将在 Web Dashboard 中定义的 String、Integer、int 以及对象设置为参考类 - 创建此类对象时失败(但是它是正确可见的在网络仪表板中):

Response{resultCode=5, httpResultCode=201, error='Error parsing response. com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected an int but was BEGIN_OBJECT at line 1 column 257 path $.userid', httpReasonPhrase='Created', data=null}

如果我把另一个对象类型放在那里,应用程序崩溃了Field type Xyz is not supported.

我的班级对象:

@SyncanoClass(name = "custom_obj")
public class CustomObj extends SyncanoObject {
    public static final String FIELD_TITLEID = "title";
    public static final String FIELD_USERID = "userid";

    @SyncanoField(name = FIELD_TITLEID)
    public String title;
    @SyncanoField(name = FIELD_USERID)
    public Integer userId;
}

不设置 userId - 我得到成功响应。

4

1 回答 1

3

是的,我们知道这个错误并在分支虚拟表支持上得到修复。在下周末应该合并到master并发布。我在下面的回答与这个分支有关。

我们决定放弃将引用存储为的想法并将Integer其替换SyncanoObject为允许轻松访问对象。

例如,如果您下载 CustomObj,所有内部对象(在 example 中YourSyncanoObject)都已折叠 - 这意味着您仅使用 id 获取对象,而没有所有其他字段。如果您想了解有关对象的更多信息,您应该调用 syncanoObject.fetch();

但是,如果您想扩展对象,我们几乎可以完成类似于Virtual Table的未来,允许您获得具有扩展的内部同步对象字段的 CustomObj。

@SyncanoClass(name = "custom_obj")
public class CustomObj extends SyncanoObject {
    public static final String FIELD_TITLEID = "title";
    public static final String FIELD_USERID = "userid";

    @SyncanoField(name = FIELD_TITLEID)
    public String title;
    @SyncanoField(name = FIELD_USERID)
    public YourSyncanoObject syncanoObject;
}
于 2016-02-13T12:53:33.067 回答