package com.opentravelsoft.providers.hibernate.product;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.LockMode;
import org.springframework.stereotype.Repository;
import com.opentravelsoft.entity.ShareFlight;
import com.opentravelsoft.providers.hibernate.GenericDaoHibernate;
import com.opentravelsoft.providers.product.ShareFlightDao;
import com.opentravelsoft.util.RowDataUtil;
@Repository("ShareFlightDao")
public class ShareFlightDaoImpl extends
GenericDaoHibernate<ShareFlight, Integer> implements ShareFlightDao {
public ShareFlightDaoImpl() {
super(ShareFlight.class);
}
public int editShareFlight(ShareFlight shareFlight) {
ShareFlight sf = (ShareFlight) getHibernateTemplate().get(
ShareFlight.class, shareFlight.getShareFlightId(),
LockMode.PESSIMISTIC_WRITE);
if (null == sf) {
sf = new ShareFlight();
} else {
sf.setShareFlightId(shareFlight.getShareFlightId());
}
sf.setFlightNo(shareFlight.getFlightNo());
sf.setAirwaysCode(shareFlight.getAirwaysCode());
sf.setDepartureDate(shareFlight.getDepartureDate());
sf.setSeating(shareFlight.getSeating());
sf.setHandle(shareFlight.getHandle());
sf.setNote(shareFlight.getNote());
getHibernateTemplate().saveOrUpdate(sf);
return 0;
}
@SuppressWarnings("unchecked")
public List<ShareFlight> findAll() {
StringBuilder sb = new StringBuilder();
sb.append("select A.shareFlightId,A.flightNo,A.airwaysCode,");
sb.append("A.departureDate,A.seating,A.handle,A.note,B.name ");
sb.append("from ShareFlight A,");
sb.append("Airways B ");
sb.append("where A.airwaysCode = B.code ");
sb.append("order by A.shareFlightId desc ");
List<Object[]> list = getHibernateTemplate().find(sb.toString());
List<ShareFlight> sf = new ArrayList<ShareFlight>();
ShareFlight shareFlight;
if (!list.isEmpty()) {
for (Object[] obj : list) {
shareFlight = new ShareFlight();
shareFlight.setShareFlightId(RowDataUtil.getInt(obj[0]));
shareFlight.setFlightNo(RowDataUtil.getString(obj[1]));
shareFlight.setAirwaysCode(RowDataUtil.getString(obj[2]));
shareFlight.setDepartureDate(RowDataUtil.getDate(obj[3]));
shareFlight.setSeating(RowDataUtil.getInt(obj[4]));
shareFlight.setHandle(RowDataUtil.getInt(obj[5]));
shareFlight.setNote(RowDataUtil.getString(obj[6]));
shareFlight.setAirwaysName(RowDataUtil.getString(obj[7]));
sf.add(shareFlight);
}
}
return sf;
}
}