Czesc, jako ze czesto backendem sie nie zajmuje to i takie rzeczy czesto spedzaja mi sen z powiek.
W kazdym razie musialem sie dobrac do bazy danych moodla. tam sporo dziwnych rzeczy. Generalnie potrzebuje powyciagac rozne rzeczy z roznych tabel, sqlka wyglada mniej wiecej tak:
SELECT cm.section,cs.name,cs.summary,mdf.name, mdc.content
FROM mdl_course AS cr
JOIN mdl_course_modules AS cm
JOIN mdl_data AS d
JOIN mdl_data_fields AS mdf
JOIN mdl_data_content AS mdc
JOIN mdl_course_sections AS cs
WHERE cr.id=cm.course
AND cm.module = 6
AND cm.instance=mdf.dataid
AND mdf.id=mdc.fieldid
AND cs.id=cm.section
powiedzmy ze to nie wszystko ale duza czesc tego co chce osiagnac. Wyciaganie tego przez standartowe Springowe CrudRepository to taka troche sztuka bo trzeba odpytywac 5 czy 6 tabeli po kolei to co tu zrobilem 1 sql-ka (podpowiedz w moodle bazie danych nie ma zadnych relacji tylko czyste idki w kolumnach)
czy sa sie zrobic taki myk lub cos w tym stylu:
public interface CourseRepository extends CrudRepository<MdlCourse,Long> {
@Modifying
@Query("SELECT cm.section,cs.name,cs.summary,mdf.name, mdc.content\n" +
"FROM mdl_course AS cr\n" +
" JOIN mdl_course_modules AS cm\n" +
" JOIN mdl_data AS d\n" +
" JOIN mdl_data_fields AS mdf\n" +
" JOIN mdl_data_content AS mdc\n" +
" JOIN mdl_course_sections AS cs\n" +
"WHERE cr.id=cm.course\n" +
" AND cm.module = 6\n" +
" AND cm.instance=mdf.dataid\n" +
" AND mdf.id=mdc.fieldid\n" +
" AND cs.id=cm.section\n"+
" AND cr.id= :courseId")
List<TutajMojFancyObiektKtoryMaWszystkiePotrzebneKolumny> getCourses(@Param("courseId") long courseId);
}
z gory dzieki
pzdr
Wojtek