kotlin 房间DB三表关系

zc0qhyus  于 2023-11-21  发布在  Kotlin
关注(0)|答案(1)|浏览(336)
  • 我试图在房间数据库中使用@Relation从三个表中实现关系,但与它混淆。
  • DB由学生、科目和成绩表组成。
  • 学生表 *:
  1. @Entity(tableName = "student")
  2. data class Student(
  3. @PrimaryKey(autoGenerate = false)
  4. @ColumnInfo(name = "student_id")
  5. var id: Int = 0,
  6. @ColumnInfo(name = "student_name")
  7. var name: String? = null,
  8. @ColumnInfo(name = "student_email")
  9. var email: String? = null,
  10. @ColumnInfo(name = "student_created_date")
  11. var created: Long = System.currentTimeMillis(),
  12. var school_id: Int = -1
  13. )

字符串

  • 主题表 *:
  1. @Entity(tableName = "subject")
  2. data class Subject(
  3. @ColumnInfo(name = "subject_id")
  4. var id: Int,
  5. @ColumnInfo(name = "subject_name")
  6. var name: String
  7. )

  • 标记表 *:
  1. @Entity(tableName = "marks")
  2. data class Marks(
  3. @ColumnInfo(name = "student_id")
  4. var stu_id: Int,
  5. @ColumnInfo(name = "subject_id")
  6. var sub_id: Int,
  7. @ColumnInfo(name = "marks")
  8. var marks: Int,
  9. )


我想按科目检索学生及其各自的分数。下面是我定义的类,但我不知道如何用three tables定义关系

  1. data class StudentWithMarks(
  2. @Embedded var student: Student,
  3. @Relation(
  4. parentColumn = "student_id",
  5. entityColumn = "student_id"
  6. )
  7. var marks: List<Marks>
  8. )

ma8fv8wu

ma8fv8wu1#

您可以在student表中添加一个名为subject_id的列信息,然后可以在student和subject表之间创建关系。

相关问题