我刚刚开始使用Room,虽然一切似乎都很直观,但我目前还不太明白我该如何处理人际关系.

因为SQLite是关系数据库,所以可以指定对象之间的关系.尽管大多数ORM库允许实体对象相互引用,但Room明确禁止这样做.即使您不能使用直接关系,Room仍然允许您定义实体之间的外键约束.(来源:https://developer.android.com/topic/libraries/architecture/room.html#no-object-references)

  1. 你应该如何塑造一段Many to ManyOne to Many的关系?
  2. 这在实践中会是什么样子(例如DAOS+实体)?

推荐答案

您可以使用@Relation注释来处理Room中的关系.

一种方便的注释,可以在Pojo中自动

See document.

(谷歌的文件中有令人困惑的例子.我已经在我的另一个答案上写下了步骤和一些基本的解释.你可以check it out)

Database相关问答推荐

删除Postgres中的JSONB列并在不停机的情况下回收空间

Rust 全局存储数据库连接

使用 prisma ORM 在我的迁移中手动添加触发器

MySQL FIND_IN_SET 的对面

优雅地处理 EJB/JPA 环境中的约束冲突?

H2 - 如何截断(truncate)所有表?

在 MySQL 中创建表时如何定义列的默认值?

Oracle 数据库统计信息应该多久运行一次?

如何禁用 Django 查询缓存?

NoSql DB 和 OO Db 有什么区别?

如何获取 PostgreSQL 数据库的最后访问/修改日期?

SQL Server 简单插入语句超时

如何从 SQLite 数据库中读取数据?

如何从 MySQL 行中修剪前导和尾随引号?

在 Slick 3 的事务中执行非数据库操作

自动增量唯一标识符

Hibernate 的 MariaDB 方言类名称是什么?

在数据库中存储年份

如何使用 JPA 注释创建连接表?

如何以 SYS 身份在 Java 中连接到 Oracle?