繁体   English   中英

Android 房间数据库中的多个表

[英]Multiple Tables In Android Room Database

我想知道如何在 android 房间数据库中拥有多个表并使用关系? 我需要一点解释,或者如果你有一个很好的教程,我将不胜感激

谢谢。

您可以通过为每个表定义不同的实体 class 来拥有多个表,例如,如果我们有两个表 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
) 

在您的数据库 class 中,添加所有必需的实体类。 您不能链接来自不同数据库的两个表。

在数据库中添加实体 class

@Database(entities = [::class, FactCategory::class], version = 1)

然后在您的 DAO object 中,您可以加入两个表:

@Query("select f.id, f.title, c.title, f.description from categories c join  facts f on  c.id = f.catId")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM