Obecnie używam ActiveAndroid, i próbuję uzyskać wiele do wielu relacji do pracy w ciągu ostatnich kilku godzin, jednak po prostu nie mogę go uruchomić. Mam nadzieję, że możesz mi pomóc:ActiveAndroid Wielu do wielu relacji
Mam modele "Student" i "Kurs", student może mieć wiele kursów, a kurs ma wielu studentów. Zasadniczo jest to, co mam w modelu „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");
}
Teraz co próbuję zrobić, to „wszyscy studenci z biegiem X”, z następującym kodem:
((Student) new Select().from(StudentCourse.class).where("course = ?",selectedCourse.getId()).executeSingle()).students();
jednak pojawia się następujący błąd:
java.lang.ClassCastException: com.papinotas.models.StudentCourse nie mogą być oddane do com.papinotas.models.Student
Jeśli zmienię o plastikowymi f (Student) do (StudentCourse) Pojawia się następujący błąd:
android.database.sqlite.SQLiteException: brak takiej kolumny: students.StudentCourse (kod 1):, podczas kompilacji: SELECT * FROM studentów WHERE students.StudentCourse = 1
Moim głównym celem jest osiągnięcie tego w zaledwie jednym zapytaniu. Każda pomoc będzie bardzo ceniona. Z góry dziękuję!
PS: Ja już spojrzał na prawie wszystko udało mi się znaleźć: Active Android many-to-many relationship i https://github.com/pardom/ActiveAndroid/issues/46
starałem się znaleźć sposób na zdobycie wszystkich studentów za pomocą pojedynczego zapytania; to zrobiłoby N zapytań, jeśli się nie mylę PS: Rozumiem, o co ci chodzi, i zgadzam się, że to nie ma sensu, próbowałem podążać za przykładem na linkach zamieszczonych powyżej, jednak nie zrobili tego ". działa tak, jak się spodziewałem. – Waclock
To jest jedno zapytanie SELECT, ale potem robi trochę manipulacji Listą, dzięki czemu otrzymujesz listę Uczniów, a nie listę Kursów Studenckich. –
Och, "enrolment.student" nie wysyła zapytania do bazy danych, to masz rację! – Waclock