Ormlite& amp; GSON

时间:2014-11-03 21:49:28

标签: android json gson ormlite

我有2个api端点可以返回歌曲和艺术家。在我的Android应用程序中,我使用Retrofit命中这些端点,使用GsonConverter根据端点返回歌曲或艺术家对象的列表。然后使用Ormlite持久化对象。

他们的json看起来像这样

SONGS

[
    {
        id: 1,
        name: "foo", 
        year: 2000, 
        artist_id: 1
    },
    {
        id: 2,
        name: "bar", 
        year: 2002, 
        artist_id: 1
    },
    {
        id: 3,
        name: "foobar", 
        year: 2005, 
        artist_id: 2
    }
]

艺术家

[
    {
        id: 1,
        name: "artist1", 
        country: "usa"
    },
    {
        id: 2,
        name: "artist2", 
        country: "spain"
    }
]

Java类如下

@DatabaseTable(tableName = "songs")
public class Song {

    @Expose
    @DatabaseField(id = true, canBeNull = false)
    private Integer id; 

    @Expose
    @DatabaseField(canBeNull = false)
    private String name; 

    @Expose
    @DatabaseField
    private Integer year; 

    @Expose
    @DatabaseField(canBeNull = false)
    private Integer artist_id; 
}


@DatabaseTable(tableName = "artists")
public class Artist {

    @Expose
    @DatabaseField(id = true, canBeNull = false)
    private Integer id; 

    @Expose
    @DatabaseField(canBeNull = false)
    private String name; 

    @Expose
    @DatabaseField
    private String country; 
}

我知道在Ormlite中有关系,这些字段应该标记为“foreign”,并且该字段的类型应该与数据库中持久存在的类之一相同。因为在我的情况下,我只回到我的歌曲json中的“artist_id”而不是该艺术家的整个json对象,我该如何实现关系呢?

我相信我错过了一些非常明显的东西。如果有人能指出我正确的方向,那就太好了

0 个答案:

没有答案