package org.taobao88.taobao.enterprise.dao.impl;
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import org.taobao88.taobao.enterprise.dao.PackagesStatusesDAO;
import org.taobao88.taobao.enterprise.entity.PackageT;
import org.taobao88.taobao.enterprise.entity.PackagesStatuses;
@Transactional
@Repository("packagesStatusesDAO")
public class PackagesStatusesDAOImpl implements PackagesStatusesDAO {
@Autowired private SessionFactory sessionFactory;;
@SuppressWarnings("unchecked")
@Override
public List<PackagesStatuses> findByOrder(PackageT packageT) {
return (List<PackagesStatuses>) sessionFactory.getCurrentSession().createQuery("from PackagesStatuses where packageT.idpackage = :idpackage order by created_at").setParameter("idpackage", packageT.getIdPackage()).uniqueResult();
}
@Override
public int add(PackagesStatuses ps) {
return (int) sessionFactory.getCurrentSession().save(ps);
}
@Override
public void delete(PackagesStatuses ps) {
sessionFactory.getCurrentSession().delete(ps);
}
@Override
public void update(PackagesStatuses ps) {
sessionFactory.getCurrentSession().update(ps);
}
@Override
public PackagesStatuses findById(int id) {
return (PackagesStatuses) sessionFactory.getCurrentSession().createQuery("from PackagesStatuses where id = :id").setParameter("id", id).uniqueResult();
}
@Override
public PackagesStatuses getCurrentStatus(PackageT packageT) {
return (PackagesStatuses) sessionFactory.getCurrentSession().createQuery("from PackagesStatuses where packageT.idPackage = :idPackage order by created_at").setParameter("idPackage", packageT.getIdPackage()).list().get(0);
}
@Override
public void deleteAllByPackage(PackageT packageT) {
sessionFactory.getCurrentSession().createQuery("delete PackagesStatuses where package_id = :package_id").setParameter("package_id", packageT.getIdPackage()).executeUpdate();
}
}