package org.akaza.openclinica.dao.hibernate;
import org.akaza.openclinica.domain.technicaladmin.AuditUserLoginBean;
import org.hibernate.Criteria;
import org.hibernate.criterion.Projections;
import java.util.ArrayList;
public class AuditUserLoginDao extends AbstractDomainDao<AuditUserLoginBean> {
@Override
public Class<AuditUserLoginBean> domainClass() {
return AuditUserLoginBean.class;
}
@SuppressWarnings("unchecked")
public ArrayList<AuditUserLoginBean> findAll() {
String query = "from " + getDomainClassName() + " aul order by aul.loginAttemptDate desc ";
org.hibernate.Query q = getCurrentSession().createQuery(query);
return (ArrayList<AuditUserLoginBean>) q.list();
}
public int getCountWithFilter(final AuditUserLoginFilter filter) {
Criteria criteria = getCurrentSession().createCriteria(domainClass());
criteria = filter.execute(criteria);
criteria.setProjection(Projections.rowCount()).uniqueResult();
return ((Long) criteria.uniqueResult()).intValue();
}
@SuppressWarnings("unchecked")
public ArrayList<AuditUserLoginBean> getWithFilterAndSort(final AuditUserLoginFilter filter, final AuditUserLoginSort sort, final int rowStart,
final int rowEnd) {
Criteria criteria = getCurrentSession().createCriteria(domainClass());
criteria = filter.execute(criteria);
criteria = sort.execute(criteria);
criteria.setFirstResult(rowStart);
criteria.setMaxResults(rowEnd - rowStart);
return (ArrayList<AuditUserLoginBean>) criteria.list();
}
}