Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java =================================================================== diff -u -r044d9eb7becb79e6fd5992aee261c8665f808524 -r1e0bc17b86ca19f4d4fca4a7f3fb240b7e79418b --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision 044d9eb7becb79e6fd5992aee261c8665f808524) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision 1e0bc17b86ca19f4d4fca4a7f3fb240b7e79418b) @@ -62,5 +62,11 @@ */ public List getLessonsForUser(Integer userID); - + /** + * Returns the all the learners that have started the requested lesson. + * + * @param lessonId the id of the requested lesson. + * @return the list of learners. + */ + public List getActiveLearnerByLesson(final long lessonId); } Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java =================================================================== diff -u -r044d9eb7becb79e6fd5992aee261c8665f808524 -r1e0bc17b86ca19f4d4fca4a7f3fb240b7e79418b --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 044d9eb7becb79e6fd5992aee261c8665f808524) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 1e0bc17b86ca19f4d4fca4a7f3fb240b7e79418b) @@ -32,7 +32,6 @@ private final static String FIND_BY_USER="from " + TABLENAME + " in class " + Lesson.class.getName() + " where user_id=?"; - /** * Retrieves the Lesson * @param lessonId identifies the lesson to get @@ -90,6 +89,26 @@ } /** + * @see org.lamsfoundation.lams.lesson.dao.ILessonDAO#getActiveLearnerByLesson(long) + */ + public List getActiveLearnerByLesson(final long lessonId) + { + List learners = null; + + HibernateTemplate hibernateTemplate = new HibernateTemplate(this.getSessionFactory()); + learners = (List)hibernateTemplate.execute( + new HibernateCallback() { + public Object doInHibernate(Session session) throws HibernateException { + Query query = session.getNamedQuery("activeLearners"); + query.setLong("lessonId", lessonId); + List result = query.list(); + return result; + } + } + ); + return learners; + } + /** * Saves or Updates a Lesson. * @param lesson */ Index: lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java =================================================================== diff -u -r044d9eb7becb79e6fd5992aee261c8665f808524 -r1e0bc17b86ca19f4d4fca4a7f3fb240b7e79418b --- lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java (.../TestLessonDAO.java) (revision 044d9eb7becb79e6fd5992aee261c8665f808524) +++ lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java (.../TestLessonDAO.java) (revision 1e0bc17b86ca19f4d4fca4a7f3fb240b7e79418b) @@ -74,6 +74,12 @@ assertEquals("verify the number of lesson we get",0,lessons.size()); } + public void testGetActiveLearnersByLesson() + { + List learners = this.lessonDao.getActiveLearnerByLesson(2); + assertNotNull(learners); + } + public void testUpdateLesson() { Lesson createdLesson = this.lessonDao.getLesson(this.testLesson.getLessonId());