Subversion Repositories bacoAlunos

Rev

Rev 1326 | Rev 1405 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.domain.dao.impl;

import jomm.dao.DaoException;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.criterion.Order;
import pt.estgp.estgweb.domain.QuestionarioImpl;
import pt.estgp.estgweb.domain.QuestionarioResposta;

import java.util.List;

import static org.hibernate.criterion.Restrictions.eq;

/**
 * @author Jorge Machado
 * @date 28/Fev/2008
 * @time 2:51:06
 * @see pt.estgp.estgweb.domain.dao.impl
 */

public class QuestionarioDaoImpl extends QuestionarioDao
{

    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(QuestionarioDaoImpl.class);

    public static QuestionarioDaoImpl getInstance()
    {
        if (myInstance == null)
            myInstance = new QuestionarioDaoImpl();
        return (QuestionarioDaoImpl) myInstance;
    }

    public List<QuestionarioImpl> findSortedBy(int pageIndex, int sizeOfPage,1.5.0/docs/api/java/lang/String.html">String field)
    {
        try
        {
            Criteria criteria = createCriteria();

            criteria.setFirstResult(pageIndex * sizeOfPage);
            criteria.setMaxResults(sizeOfPage);
            criteria.addOrder(Order.desc(field));

            return criteria.list();
        }
        catch (HibernateException e)
        {
            throw new DaoException(e);
        }
    }

    public List<QuestionarioImpl> findAnoSemestre(1.5.0/docs/api/java/lang/String.html">String year, 1.5.0/docs/api/java/lang/String.html">String semestre,long historyDriveId )
    {
        try
        {
            Criteria criteria = createCriteria();
            criteria.add(eq("year",year))
                    .add(eq("semestre", semestre))
                    .add(eq("questionarioHistoryDrive.id",historyDriveId));
            return criteria.list();
        }
        catch (HibernateException e)
        {
            throw new DaoException(e);
        }
    }


    public long getNumeroRespostas(long questionarioId)
    {
        1.5.0/docs/api/javax/management/Query.html">Query q = getCurrentSession().createQuery
                ("select count(r.id) from r in class " + QuestionarioResposta.class.getName() + " " +
                        " JOIN r.questionario q " +
                        " where q.id = " + questionarioId);
        5+0%2Fdocs%2Fapi+Object">Object result = q.uniqueResult();
        if(result != null && ((1.5.0/docs/api/java/lang/Long.html">Long)result) > 0)
        {
            return (1.5.0/docs/api/java/lang/Long.html">Long)result;
        }
        else
            return 0;
    }
}