如何处理实体中的对象引用?

时间:2017-11-15 14:30:47

标签: android android-room

我有以下结构要保存到app数据库:

@Entity
public class Project{
   @primaryKey
   String id;
   String name;
   [...]
   Country country;
   [...]
}

我的国家实体如下所示:

@Entity
public class Country {
    @PrimaryKey
    private String id;
    private String name;
    private String pk;
}

现在我的问题:我如何让房间知道国家和项目实体之间的关系?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

Room不能有嵌套实体,你可以在一个实体中嵌入POJO类,但是它会被扁平化为一个表,或者如果你想将Country作为一个实体,那么你必须将project_id存储在Project实体中并将其索引为外键。

有关嵌入字段的更多信息:https://developer.android.com/reference/android/arch/persistence/room/Embedded.html

有关外键的更多信息:https://developer.android.com/reference/android/arch/persistence/room/ForeignKey.html