1 package dst.ass1.jpa.dao.impl;
3 import dst.ass1.jpa.dao.ILecturerDAO;
4 import dst.ass1.jpa.model.ICourse;
5 import dst.ass1.jpa.model.ILecturer;
6 import dst.ass1.jpa.model.ILesson;
7 import dst.ass1.jpa.model.impl.Lecturer;
8 import dst.ass1.jpa.model.impl.Lesson;
9 import dst.ass1.jpa.util.Constants;
11 import javax.persistence.EntityManager;
12 import javax.persistence.NoResultException;
13 import java.util.Collection;
14 import java.util.Date;
15 import java.util.HashMap;
18 public class LecturerDAO extends GenericDAO<Lecturer, ILecturer> implements ILecturerDAO {
19 public LecturerDAO(EntityManager em) {
20 super(em, Lecturer.class);
24 public Map<ILecturer, ILesson> findUpcomingLessonForLecturersOfCourse(ICourse course) {
26 Collection<Object[]> res = em.createNamedQuery(Constants.Q_UPCOMING_LESSONS, Object[].class)
27 .setParameter("now", new Date()).setParameter("course", course).getResultList();
29 Map<ILecturer, ILesson> ret = new HashMap<>();
30 for (Object[] o : res) {
31 Lecturer lec = (Lecturer) o[0];
32 Lesson les = (Lesson) o[1];
33 if (!ret.containsKey(lec)) ret.put(lec, les);
36 } catch (NoResultException e) {
37 return new HashMap<>();