@Entity(tableName = "students") public class Student { @PrimaryKey(autoGenerate = true) private int id; private String name;
public Student(String name) { this.name = name; }
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
@Entity(tableName = "courses") public class Course { @PrimaryKey(autoGenerate = true) private int id; private String name;
public Course(String name) { this.name = name; }
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
@Entity(tableName = "student_course_join", primaryKeys = { "studentId", "courseId" }, foreignKeys = { @ForeignKey(entity = Student.class, parentColumns = "id", childColumns = "studentId"), @ForeignKey(entity = Course.class, parentColumns = "id", childColumns = "courseId") }) public class StudentCourseJoin { private int studentId; private int courseId;
public StudentCourseJoin(int studentId, int courseId) {
this.studentId = studentId;
this.courseId = courseId;
}
public int getStudentId() { return studentId; }
public void setStudentId(int studentId) { this.studentId = studentId; }
public int getCourseId() { return courseId; }
public void setCourseId(int courseId) { this.courseId = courseId; }
}
@Dao public interface StudentCourseJoinDao { @Insert(onConflict = OnConflictStrategy.IGNORE) void insert(StudentCourseJoin studentCourseJoin);
// 获取一个学生所选的所有课程
@Query("SELECT * FROM courses " +
"INNER JOIN student_course_join " +
"ON courses.id = student_course_join.courseId "