Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java =================================================================== diff -u -r45466cdcb65a2b45fa8e24d23a40b986d902cede -rf0101ce51ebf5accdfacb6f4dbdcfbe3beb84204 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java (.../AssessmentResultDAOHibernate.java) (revision 45466cdcb65a2b45fa8e24d23a40b986d902cede) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java (.../AssessmentResultDAOHibernate.java) (revision f0101ce51ebf5accdfacb6f4dbdcfbe3beb84204) @@ -59,9 +59,9 @@ + AssessmentResult.class.getName() + " AS r WHERE r.user.userId=? AND r.assessment.uid=? AND (r.finishDate != null)"; - private static final String FIND_ASSESSMENT_RESULT_GRADE = "select r.grade FROM " + private static final String FIND_LAST_ASSESSMENT_RESULT_GRADE = "select r.grade FROM " + AssessmentResult.class.getName() - + " AS r WHERE r.user.userId=? AND r.assessment.uid=? AND (r.finishDate != null)"; + + " AS r WHERE r.user.userId=? AND r.assessment.uid=? AND (r.finishDate != null) ORDER BY r.startDate DESC"; private static final String FIND_ASSESSMENT_RESULT_TIME_TAKEN = "select r.finishDate - r.startDate FROM " + AssessmentResult.class.getName() @@ -110,13 +110,13 @@ @Override public Float getLastFinishedAssessmentResultGrade(Long assessmentUid, Long userId) { - List list = doFind(AssessmentResultDAOHibernate.FIND_ASSESSMENT_RESULT_GRADE, new Object[] { userId, - assessmentUid }); - if ((list == null) || (list.size() == 0)) { - return null; - } else { - return ((Number) list.get(0)).floatValue(); - } + + Query q = getSession() + .createQuery(AssessmentResultDAOHibernate.FIND_LAST_ASSESSMENT_RESULT_GRADE); + q.setParameter(0, userId); + q.setParameter(1, assessmentUid); + q.setMaxResults(1); + return ((Number) q.uniqueResult()).floatValue(); } @Override