Android room one to many relationship(Android房间一对多关系)
问题描述
我正在尝试设置一对多关系,我联机查看了多篇文章和教程,但所有示例都显示一个表与另一个表具有一对多关系。
在我的要求中,我有两个表与另一个表具有一对多关系(请查看下图)
学生表有来自班级和学校表的FK。大多数示例都说明了班级与学生或学校与学生之间的一对多关系。
我想做[班级,学校]-学生。
核心数据会在iOS上处理,但我无法在Android上解决这个问题。我尝试了Android文档中显示的嵌套关系示例,但不起作用。
推荐答案
您的问题未清楚说明。但是,以下是一个实际示例,它演示了基于您的架构提取关系的两种方法。
- 注意:将Class用作类充满了潜在问题,不推荐使用。但是,以下代码确实使用了类,并且为了规避某些问题,可能无法完全反映您的架构。
示例代码
学校实体:-
类(不明智的名称选择):-
学生实体(包括外键约束):-
POJO方法1-类StudentAndSchoolAndClass-(不使用@Relation
)
POJO方法2-ClassStudentWithSchoolWithClass-(使用@Relation
的)
DAO接口全部DAO
- 注意最后两个查询使用各自的POJO,特别是
- 具有@Relations的PJO具有通过联接的 定义的关系
@Database类MyDatabase
最后一个活动MainActivity,该活动将一些数据加载到数据库中,然后使用2@查询和相应的POJO类提取一些数据。
- 注意第一个选项中的学校和班级名称是班级的成员,而第二个选项中的学校和班级在列表中。由于学生将只有一个学校/班级,因此不需要遍历列表,因为第一个元素/项目(0)将是列表中唯一的元素/项目。
结果
当(第一次)运行上述程序时,数据库为:-
日志包含:-
这篇关于Android房间一对多关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!