【发布时间】:2020-06-13 21:11:51
【问题描述】:
我是 Room 的新手,我正在玩一个示例应用程序,该应用程序可以注册学生并将其显示在 RecyclerView 中。
我有一个学生类,例如:
@Entity
public class Student {
@PrimaryKey (autoGenerate = true)
private int id;
private String studentNumber;
private String name;
private int schoolId;
}
一个学校班级:
@Entity
public class School {
@PrimaryKey (autoGenerate = true)
private int id;
private String name;
}
具有一对多关系(一所学校有一个学生列表,一个学生属于一所学校)
public class SchoolWithStudents {
@Embedded private School school;
@Relation(
parentColumn = "id",
entityColumn = "schoolId"
)
private List<Student> studentList;
}
如果我有一个要显示学生详细信息(包括学校名称)的活动。对我来说似乎很奇怪,只需要查询数据库才能获得类似于 getSchoolById 的学校名称。
我来自 Spring Boot,在 Student 类中嵌入一个 School 对象并仍然管理关系是完全正常的。
因此,获取学校名称就像:student.getSchool.getName() 一样简单。 我没看错吧?我真的需要额外的查询吗?我还没有使用 SchoolWithStudents,只是为了建筑目的而声明
【问题讨论】:
标签: android relationship android-room