package se.dinapengar.news.dao; import se.dinapengar.news.model.DISE_Articles; import se.dinapengar.news.model.DISE_Sections; import java.util.Iterator; import org.hibernate.Query; // Author: joed // Date : Feb 7, 2007 public class SectionsDao extends AbstractDaoHibernate { protected SectionsDao(DISE_Sections dise_Articles) { super(DISE_Sections.class); } public Iterator find(final QueryParam qp, DISE_Sections filter) { return buildFindQuery(qp, filter, false).iterate(); } protected Query buildFindQuery(QueryParam qp, DISE_Sections filter, boolean count) { StringBuffer hql = new StringBuffer(); if (count) { hql.append("select count(*) "); } hql.append(" from DISE_Sections target where 1=1 "); if (filter.getId() != null) { hql.append("and upper(target.section) like (:section)"); } if (!count && qp != null && qp.hasSort()) { hql.append("order by upper(target.").append(qp.getSort()).append( ") ").append((qp.isSortAsc()) ? " asc" : " desc"); } Query query = (Query) getSession().createQuery(hql.toString()); if (!count && qp != null) { query.setFirstResult(qp.getFirst()).setMaxResults(qp.getCount()); } return query; } public DISE_Sections load(long id) { return (DISE_Sections) getSession().get(DISE_Sections.class, new Long(id)); } public int count(DISE_Sections filter) { return ((Integer) buildFindQuery(null, filter, true).uniqueResult()) .intValue(); } }