我有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对象,我该如何实现关系呢?
我相信我错过了一些非常明显的东西。如果有人能指出我正确的方向,那就太好了