Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java,v diff -u -r1.9.2.6 -r1.9.2.7 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java 13 Nov 2015 14:25:40 -0000 1.9.2.6 +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentResultDAOHibernate.java 19 Nov 2015 21:11:45 -0000 1.9.2.7 @@ -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