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

时间:2017-06-09 19:24:14

标签: android json caching retrofit greendao

好的是这个场景,我有一个像这样的复杂对象(见下文),并使用Retrofit下载和解析。我使用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
        }
    ]
}

清除缓存时的Json / JavaObject

{
    "id": 91
    "timestamp": 1487786669,
    "groups": null
}

我的GreenDao发电机

    /* 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");

0 个答案:

没有答案