缓存复杂/嵌套对象并使用Greendao Android查询它们

缓存复杂/嵌套对象并使用Greendao Android查询它们,android,json,caching,retrofit,greendao,Android,Json,Caching,Retrofit,Greendao,好的,这是一个场景,我有一个类似这样的复杂对象(见下文),它是通过改型下载和解析的。我使用GreenDao生成了Java类(POJO),在应用程序运行时一切正常:根据我的需要改装响应主体,我将此response.body()插入数据库,如果我在其他活动中查询,GreenDao将检索此对象并设置所有属性(是缓存对象) 问题是,当我清除所有缓存或关闭应用程序并再次打开它时,嵌套对象的列表是null(参见下面的第二个json) 我怎样才能解决这个问题?提前谢谢 从服务器发送的Json { "i

好的,这是一个场景,我有一个类似这样的复杂对象(见下文),它是通过改型下载和解析的。我使用GreenDao生成了Java类(POJO),在应用程序运行时一切正常:根据我的需要改装响应主体,我将此
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