package com.joe.core.repository.impl;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.criterion.Projections;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.joe.core.domain.UserInfo;
import com.joe.core.repository.IUserInfoRepository;
/**
* Data access object (DAO) for domain model class UserMaster.
*
* @see demo.hibernate.UserMaster
* @author MyEclipse Persistence Tools
*/
public class UserInfoRepositoryImpl extends HibernateDaoSupport implements IUserInfoRepository{
private static final Log log = LogFactory.getLog(UserInfoRepositoryImpl.class);
/**
* Constructor for the class
* @param hibernateTemplate
*/
public UserInfoRepositoryImpl(HibernateTemplate hibernateTemplate)
{
super();
if (hibernateTemplate == null)
throw new IllegalArgumentException("hibernateTemplate is null");
setHibernateTemplate(hibernateTemplate);
}
@SuppressWarnings("unchecked")
public List<UserInfo> findPage(String sortColumnName, boolean sortAscending, int startRow, int maxResults) {
try {
String queryString = "select c from UserInfo c order by c." + sortColumnName + " " + (sortAscending ? "asc" : "desc");
return getSession().createQuery(queryString).setFirstResult(startRow).setMaxResults(maxResults).list();
} catch (RuntimeException re) {
throw re;
}
}
public List getPagedData(int start, int page) {
try {
Criteria criteria = getSession().createCriteria(UserInfo.class);
//Build Criteria object here
criteria.setFirstResult(start);
criteria.setMaxResults(page);
return criteria.list();
} catch (HibernateException hibernateException) {
//do something here with the exception
}
return null;
}
public int getDataCount() {
Criteria criteria = getSession().createCriteria(UserInfo.class);
criteria.setProjection(Projections.rowCount());
// Build Criteria object here
Number nuofRecords = ((Number) criteria.uniqueResult());
return nuofRecords == null ? 0 : nuofRecords.intValue();
}
}