data Teacher = T { students :: [Student]
, departs :: [Department]
}
-- Student and Department do not matter so far
-- HQL
1. select Teacher where id = 'abc';
2. then hibernate will eager fetch students and departs with extra 2 queries;
-- SQL
-- results size = N * M, given Student.size is N and Department.size is M
select * from Teacher
join Student ...
join Department ...
where Teacher.id = 'abc';