public void raisePriority(Question question) {
//getting the previous question
Question prevQuestion = (Question) super.getSession().createQuery("from Question question where question.questionPriority=(select max(questionPriority) from Question minQuestion where minQuestion.questionType.questionTypeId=? AND minQuestion.questionPriority<? AND question.forObjectStructure=?) AND question.questionType.questionTypeId=?").setInteger(0, question.getQuestionType().getQuestionTypeId().intValue()).setInteger(1, question.getQuestionPriority().intValue()).setInteger(2, question.getQuestionType().getQuestionTypeId().intValue()).setBoolean(3, question.isForObjectStructure()).uniqueResult();
if (prevQuestion != null) {
Integer currentPriority = question.getQuestionPriority();
Integer prevPriority = prevQuestion.getQuestionPriority();
question.setQuestionPriority(prevPriority);
prevQuestion.setQuestionPriority(currentPriority);
saveQuestion(question);
saveQuestion(prevQuestion);
}
}