package edu.sjtu.infosec.ismp.manager.RAM.dao.impl;
import java.util.List;
import java.util.Map;
import org.hibernate.Criteria;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import edu.sjtu.infosec.ismp.manager.RAM.dao.DicProgDao;
import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowDicProg;
import edu.sjtu.infosec.ismp.manager.comm.model.page.Page;
/**
* 数据层 评估流程数据字典Dao实现类.
*
*/
public class DicProgDaoImpl extends HibernateDaoSupport implements DicProgDao {
/**
* 查询评估流程
*
* @param progId
* 评估流程编号
* @return 评估流程对象
*/
public AsseKnowDicProg find(String progId) {
return (AsseKnowDicProg) getHibernateTemplate()
.find("from AsseKnowDicProg dicProg where dicProg.progId = ?", progId);
}
/**
* 查询评估流程记录数
*
* @param paramMap
* 查询条件
* @return 评估流程记录数
*/
public int getCount(Map paramMap) {
Criteria criteria = getSession().createCriteria(AsseKnowDicProg.class);
criteria.setProjection(Projections.rowCount())
.setMaxResults(1)
.uniqueResult();
if(paramMap!=null) {
if(paramMap.get("progName")!=null) {
criteria.add(Expression.like("progName", "%"+((String) paramMap.get("progName")).trim()+"%"));
}
}
return ((Integer) criteria.list().get(0)).intValue();
}
/**
* 查询评估流程
* @param paramMap
* 查询条件
* @return 评估流程列表
*/
public List listDicProg(Map paramMap) {
List list = null;
Criteria criteria = getSession().createCriteria(AsseKnowDicProg.class)
.addOrder(Order.asc("id"));
if(paramMap!=null) {
if(paramMap.get("progName")!=null) {
criteria.add(Expression.like("progName", "%"+((String) paramMap.get("progName")).trim()+"%"));
}
}
return criteria.list();
}
/**
* 查询评估流程分页记录
*
* @param page
* 分页对象
* @param paramMap
* 查询条件
* @return 分页记录列表
*/
public List listDicProgPage(Page page, Map paramMap) {
List list = null;
Criteria criteria = getSession().createCriteria(AsseKnowDicProg.class)
.addOrder(Order.asc("id"))
.setFirstResult(page.getBeginIndex())
.setMaxResults(page.getEveryPage());
if(paramMap!=null) {
if(paramMap.get("progName")!=null) {
criteria.add(Expression.like("progName", "%"+((String) paramMap.get("progName")).trim()+"%"));
}
}
return criteria.list();
}
/**
* 删除评估流程
*
* @param dicProg
* 评估流程
*/
public void remove(AsseKnowDicProg dicProg) {
getHibernateTemplate().delete(dicProg);
}
/**
* 保存/更新评估流程
*
* @param dicProg
* 评估流程
*/
public void saveOrUpdate(AsseKnowDicProg dicProg) {
getHibernateTemplate().saveOrUpdate(dicProg);
}
}