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

How to handle Object References in Entity?

我有以下结构要保存到应用程序数据库:

@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;
}

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

请参考官方文档

https://developer.android.com/reference/android/arch/persistence/room/Relation.html

Room 不能有嵌套的实体,您可以将 POJO 类 嵌入到一个实体中,但它会被扁平化为一个 table 或者如果您希望将 Country 作为一个实体,那么您将拥有将 county_id 存储在项目实体中并将其索引为外键。

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

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