我想知道如何在 android room 数据库中拥有多个表并使用关系?我需要一点解释,或者如果你有一个很好的教程,我将不胜感激
谢谢。
我想知道如何在 android room 数据库中拥有多个表并使用关系?我需要一点解释,或者如果你有一个很好的教程,我将不胜感激
谢谢。
您可以通过为每个表定义不同的实体类来拥有多个表,例如,如果我们有两个表 FactCategory 和 Facts,则每个 FactCategory 可以有多个事实。
事实类别:
@Entity(tableName = "categories")
data class FactCategory(@PrimaryKey var id: String, var title: String)
事实:
@Entity(tableName = "facts")
class Fact(
@field:PrimaryKey val id: String,
val title: String,
val description: String?,
val imageHref: String?,
val catId: String
)
在您的数据库类中,添加所有必需的实体类。您不能链接来自不同数据库的两个表。
在数据库类中添加实体
@Database(entities = [::class, FactCategory::class], version = 1)
然后在您的 DAO 对象中,您可以加入两个表:
@Query("select f.id, f.title, c.title, f.description from categories c join facts f on c.id = f.catId")