package com.opentravelsoft.providers.hibernate; import java.util.List; import org.hibernate.LockMode; import org.hibernate.criterion.CriteriaSpecification; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Repository; import com.opentravelsoft.entity.Airways; import com.opentravelsoft.providers.AirwaysDao; import com.opentravelsoft.util.PaginationSupport; @Repository("AirwaysDao") public class AirwaysDaoImpl extends GenericDaoHibernate<Airways, String> implements AirwaysDao { public AirwaysDaoImpl() { super(Airways.class); } @SuppressWarnings("unchecked") public List<Airways> getAll(boolean usable) { DetachedCriteria criteria = DetachedCriteria.forClass(Airways.class); if (usable) criteria.add(Restrictions.eq("isActive", (byte) 1)); criteria.addOrder(Order.asc("name")); criteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY); return getHibernateTemplate().findByCriteria(criteria); } public Airways getDetail(String airwaysId) { HibernateTemplate template = getHibernateTemplate(); Airways airways = (Airways) template.get(Airways.class, airwaysId); return airways; } public int delete(Airways airways) { HibernateTemplate template = getHibernateTemplate(); Airways rlt = (Airways) template.get(Airways.class, airways.getCode(), LockMode.PESSIMISTIC_WRITE); if (null == rlt) { return -1; } rlt.setIsActive((byte) 0); template.update(rlt); return 0; } public PaginationSupport getAirwaysList(boolean usable, int fromRecord, int pageSize) { DetachedCriteria criteria = DetachedCriteria.forClass(Airways.class); if (usable) criteria.add(Restrictions.eq("isActive", (byte) 1)); PaginationSupport support = findPageByCriteria(criteria, pageSize, fromRecord); return support; } }