我想在我的类对象中使用'reference'类型的字段。 我不确定如何在Java POJO对象中定义它 - 我尝试设置String,Integer,int,以及在web Dashboard中定义的对象作为引用类 - 我在创建这样的对象时失败了(但它是正确可见的)在网络仪表板中):
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 - 我获得成功回复。
答案 0 :(得分:3)
是的,我们知道这个错误并在分支Virtual Table support上修复。在下周末应该合并到主人并发布。我在下面的回答与这个分支有关。
我们决定放弃将参考文献存储为Integer
并将其替换为SyncanoObject
,以便轻松访问对象。
例如,如果您下载CustomObj,则所有内部对象(在示例YourSyncanoObject
中)都会折叠 - 这意味着您只能使用id获取对象,而不会显示所有其他字段。如果您想了解有关对象的更多信息,请调用syncanoObject.fetch();
但是如果你想扩展对象我们差不多完成类似于Virtual Table的未来,允许你获得带有扩展内部syncano对象字段的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;
}