package com.opentravelsoft.providers.hibernate;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import com.opentravelsoft.entity.Flight;
import com.opentravelsoft.providers.FlightDao;
import com.opentravelsoft.util.PaginationSupport;
import com.opentravelsoft.util.StringUtil;
@Repository("FlightDao")
public class FlightDaoImpl extends GenericDaoHibernate<Flight, String>
implements FlightDao {
public FlightDaoImpl() {
super(Flight.class);
}
public PaginationSupport getFlightList(String aireways, String lvAirport,
String goAirport, int fromRecord, int moveCount) {
DetachedCriteria criteria = DetachedCriteria.forClass(Flight.class, "b");
if (StringUtil.hasLength(aireways))
criteria.createAlias("b.airways", "c");
if (StringUtil.hasLength(lvAirport))
criteria.createAlias("b.leavingAirport", "d");
if (StringUtil.hasLength(goAirport))
criteria.createAlias("b.goingAirport", "e");
if (StringUtil.hasLength(aireways))
criteria.add(Restrictions.eq("c.code", aireways));
if (StringUtil.hasLength(lvAirport))
criteria.add(Restrictions.eq("d.code", aireways));
if (StringUtil.hasLength(goAirport))
criteria.add(Restrictions.eq("e.code", aireways));
PaginationSupport support = findPageByCriteria(criteria, moveCount,
fromRecord);
return support;
}
}