缓存复杂/嵌套对象并使用Greendao Android查询它们
好的,这是一个场景,我有一个类似这样的复杂对象(见下文),它是通过改型下载和解析的。我使用GreenDao生成了Java类(POJO),在应用程序运行时一切正常:根据我的需要改装响应主体,我将此缓存复杂/嵌套对象并使用Greendao Android查询它们,android,json,caching,retrofit,greendao,Android,Json,Caching,Retrofit,Greendao,好的,这是一个场景,我有一个类似这样的复杂对象(见下文),它是通过改型下载和解析的。我使用GreenDao生成了Java类(POJO),在应用程序运行时一切正常:根据我的需要改装响应主体,我将此response.body()插入数据库,如果我在其他活动中查询,GreenDao将检索此对象并设置所有属性(是缓存对象) 问题是,当我清除所有缓存或关闭应用程序并再次打开它时,嵌套对象的列表是null(参见下面的第二个json) 我怎样才能解决这个问题?提前谢谢 从服务器发送的Json { "i
response.body()
插入数据库,如果我在其他活动中查询,GreenDao将检索此对象并设置所有属性(是缓存对象)
问题是,当我清除所有缓存或关闭应用程序并再次打开它时,嵌套对象的列表是null
(参见下面的第二个json)
我怎样才能解决这个问题?提前谢谢
从服务器发送的Json
{
"id" : 91
"timestamp": 1487786669,
"groups": [
{
"id": "G1",
"name": "Some name",
"nextPaymentDate": "2017-06-01",
"totalAmount": 1000.00,
"overdraft": false,
"apoyaT": true
},
{
"id": "G2",
"name": "Other name",
"nextPaymentDate": "2017-06-02",
"totalAmount": 1000.00,
"overdraft": true,
"apoyaT": false
}
]
}
/* List Entity ***************************/
Entity list = schema.addEntity("List_p");
list.addIntProperty("id").primaryKey();
list.addLongProperty("timestamp");
/* Group Entity **************************/
Entity group = schema.addEntity("Group");
group.addStringProperty("id").primaryKey();
group.addStringProperty("name");
group.addStringProperty("nextPaymentDate");
group.addDoubleProperty("totalAmount");
group.addBooleanProperty("overdraft");
group.addBooleanProperty("apoyaT");
Property listId = group.addLongProperty("listId").getProperty();
list.addToMany(group, listId, "groups");
清除缓存时的Json/JavaObject
{
"id": 91
"timestamp": 1487786669,
"groups": null
}
我的绿岛发电机
{
"id" : 91
"timestamp": 1487786669,
"groups": [
{
"id": "G1",
"name": "Some name",
"nextPaymentDate": "2017-06-01",
"totalAmount": 1000.00,
"overdraft": false,
"apoyaT": true
},
{
"id": "G2",
"name": "Other name",
"nextPaymentDate": "2017-06-02",
"totalAmount": 1000.00,
"overdraft": true,
"apoyaT": false
}
]
}
/* List Entity ***************************/
Entity list = schema.addEntity("List_p");
list.addIntProperty("id").primaryKey();
list.addLongProperty("timestamp");
/* Group Entity **************************/
Entity group = schema.addEntity("Group");
group.addStringProperty("id").primaryKey();
group.addStringProperty("name");
group.addStringProperty("nextPaymentDate");
group.addDoubleProperty("totalAmount");
group.addBooleanProperty("overdraft");
group.addBooleanProperty("apoyaT");
Property listId = group.addLongProperty("listId").getProperty();
list.addToMany(group, listId, "groups");
你是如何给JSON对象赋值的?嘿!我已经解决了这个问题。这几天我要发布解决方案。Thx btw