私は現在 ActiveAndroid を使用しており、過去数時間、多対多の関係を機能させようとしていますが、機能させることができません。あなたが私を助けてくれることを願っています:
「学生」と「コース」というモデルがあり、学生は多くのコースを持つことができ、コースには多くの学生がいます。基本的に、これはモデル「StudentCourse」にあるものです。
@Column(name = COURSE)
public Course course;
@Column(name = STUDENT)
public Student student;
public StudentCourse(Student student, Course course) {
super();
this.student = student;
this.course = course;
}
//
public StudentCourse(){ }
public List<Course> courses(){
return getMany(Course.class, "StudentCourse");
}
public List<Student> students(){
return getMany(Student.class, "StudentCourse");
}
今私がやろうとしているのは、次のコードで「コース X のすべての学生」を取得することです。
((Student) new Select().from(StudentCourse.class).where("course = ?",selectedCourse.getId()).executeSingle()).students();
ただし、次のエラーが表示されます。
java.lang.ClassCastException: com.papinotas.models.StudentCourse は com.papinotas.models.Student にキャストできません
(Student) のキャストを (StudentCourse) に変更すると、次のエラーが発生します。
android.database.sqlite.SQLiteException: そのような列はありません: students.StudentCourse (コード 1): 、コンパイル中: SELECT * FROM students WHERE students.StudentCourse=1
私の主な目標は、うまくいけば、たった 1 つのクエリでこれを達成することです。どんな助けでも大歓迎です。前もって感謝します!
PS: 私はすでに見つけたほとんどすべてを見てきました:アクティブな Android 多対多関係とhttps://github.com/pardom/ActiveAndroid/issues/46