package edu.sjtu.infosec.ismp.manager.RAM.dao.impl;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import edu.sjtu.infosec.ismp.manager.RAM.dao.StatSecuElemDao;
import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowStatSecuElem;
import edu.sjtu.infosec.ismp.manager.comm.model.page.Page;
/**
* 数据层 静态安全要素Dao实现类.
*
*/
public class StatSecuElemDaoImpl extends HibernateDaoSupport implements StatSecuElemDao {
/**
* 查询静态安全要素
*
* @param elemCode
* 要素编码
* @return 静态安全要素对象
**/
public AsseKnowStatSecuElem find(String elemCode) {
AsseKnowStatSecuElem statSecuElem=null;
List list = getHibernateTemplate().find("from AsseKnowStatSecuElem secuE where secuE.elemCode = ?",elemCode);
if(list!=null && list.size()>0) {
statSecuElem = (AsseKnowStatSecuElem) list.get(0);
}
return statSecuElem;
}
/**
* 查询静态安全要素
*
* @param id
* 要素id
* @return 静态安全要素对象
**/
public AsseKnowStatSecuElem find(Integer id) {
AsseKnowStatSecuElem statSecuElem = (AsseKnowStatSecuElem) getHibernateTemplate().load(AsseKnowStatSecuElem.class, id);
return statSecuElem;
}
/**
* 返回静态安全要素树各个根节点列表
* @return 静态安全要素根节点列表
**/
public List<AsseKnowStatSecuElem> findTree() {
List list = getHibernateTemplate().find("from AsseKnowStatSecuElem secuE where length(trim(secuE.elemCode))<=2 order by secuE.elemCode");
return list;
}
/**
* 查询静态安全要素数量
* @return 业务信息记录数
**/
public int getCount() {
Criteria criteria = getSession().createCriteria(AsseKnowStatSecuElem.class);
return 0;//count(criteria);
}
/**
* 查询静态安全要素分页记录
* @param page
* 分页对象
* @return 分页记录列表
**/
public List<AsseKnowStatSecuElem> listStatSecuElemPage(Page page) {
Criteria criteria = this.getSession().createCriteria(AsseKnowStatSecuElem.class)
.addOrder(Order.asc("id"));
if(page!=null) {
criteria.setFirstResult(page.getBeginIndex())
.setMaxResults(page.getEveryPage());
}
return criteria.list();
}
/**
* 删除静态安全要素
*
* @param statSecuElem
* 静态安全要素
**/
public void remove(AsseKnowStatSecuElem statSecuElem) {
getHibernateTemplate().delete(statSecuElem);
}
/**
* 批量删除静态安全要素
*
* @param statSecuElemList
* 静态安全要素对象列表
**/
public void remove(List<AsseKnowStatSecuElem> statSecuElemList) {
getHibernateTemplate().deleteAll(statSecuElemList);
}
/**
* 保存/更新静态安全要素
* 静态安全要素
**/
public void saveOrUpdate(AsseKnowStatSecuElem statSecuElem) {
getHibernateTemplate().saveOrUpdate(statSecuElem);
}
@SuppressWarnings("unchecked")
public List<AsseKnowStatSecuElem> listStatSecuElem() {
return getHibernateTemplate().find("from AsseKnowStatSecuElem");
}
}