Обычная загрузка
println("\n\nNO EAGER LOAD\n\n")
CourseDao.all().map { it.fullString() }
NO EAGER LOAD
SELECT COURSES.ID, COURSES."NAME" FROM COURSES
SELECT GRADES.ID, GRADES."VALUE", GRADES."DATE", GRADES.COURSE, GRADES.STUDENTS FROM GRADES WHERE GRADES.COURSE = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT GRADES.ID, GRADES."VALUE", GRADES."DATE", GRADES.COURSE, GRADES.STUDENTS FROM GRADES WHERE GRADES.COURSE = '...'
SELECT GRADES.ID, GRADES."VALUE", GRADES."DATE", GRADES.COURSE, GRADES.STUDENTS FROM GRADES WHERE GRADES.COURSE = '...'
Жадная загрузка
println("\n\nEAGER LOAD\n\n")
CourseDao.all().with(CourseDao::grades).map { it.fullString() }
EAGER LOAD
SELECT COURSES.ID, COURSES."NAME" FROM COURSES
SELECT GRADES.ID, GRADES."VALUE", GRADES."DATE", GRADES.COURSE, GRADES.STUDENTS FROM GRADES
WHERE GRADES.COURSE IN ('...', '...', '...')
SELECT COURSES.ID, COURSES."NAME" FROM COURSES
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS WHERE STUDENTS.ID = '...'
Очень жадная загрузка
println("\n\nVERY EAGER LOAD\n\n")
CourseDao.all()
.with(CourseDao::grades, GradeDao::student)
.map { it.fullString() }
VERY EAGER LOAD
SELECT COURSES.ID, COURSES."NAME" FROM COURSES
SELECT GRADES.ID, GRADES."VALUE", GRADES."DATE", GRADES.COURSE, GRADES.STUDENTS FROM GRADES
WHERE GRADES.COURSE IN ('...', '...', '...')
SELECT STUDENTS.ID, STUDENTS."NAME", STUDENTS."GROUP" FROM STUDENTS
WHERE STUDENTS.ID IN ('...', '...', '...', '...', '...', '...')
SELECT COURSES.ID, COURSES."NAME" FROM COURSES