android - Android房间数据库中的多个表
问题描述
我想知道如何在 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")
推荐阅读
- python - 我想运行一个以行迭代作为参数的函数,python
- sql - 限制列组合中的 NULL 值的约束
- kubernetes - 来自服务器的错误(未找到):创建 STDIN 时出错:未找到命名空间 gitlab-runner
- plugins - H5P在moodle的哪里存储内容?
- javascript - 为什么在 ajax 中发送数据时需要 _token : token?
- c# - 请参阅 .NET 健康检查详细信息
- javascript - index.html 中库文件的 CSRF 令牌
- c# - 将“+”转换为求值运算符
- postgresql - 如何在从 postgres 中的另一个函数返回的函数中获取 refcursor?
- python - 有没有办法停止 pycurl perform() 执行?