package edu.sjtu.infosec.ismp.manager.ERM.dao.impl;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import edu.sjtu.infosec.ismp.manager.ERM.dao.RespProcDao;
import edu.sjtu.infosec.ismp.manager.ERM.model.ContiRespProc;
import edu.sjtu.infosec.ismp.manager.ERM.model.RespInfoBO;
import edu.sjtu.infosec.ismp.manager.ERM.model.SafeThreatenInfo;
public class RespProcDaoImpl extends HibernateDaoSupport implements RespProcDao {
@SuppressWarnings({ "unchecked", "deprecation" })
public List<ContiRespProc> findRespProcByrespinfo(int pageNow,int pageSize,String id,String sid) {
Criteria criteria = getSession().createCriteria(ContiRespProc.class)
.addOrder(Order.asc("id"))
.setFirstResult(pageNow)
.setMaxResults(pageSize);
if(id!=null ) {
criteria.add(Expression.eq("respInfo.id", Integer.parseInt(id)));
}
if(sid!=null &&!"".equals(sid) ) {
criteria.add(Expression.eq("safeThreaten.id", Integer.parseInt(sid)));
}
return criteria.list();
}
public List<SafeThreatenInfo> findSafeThreat() {
Query query=this.getSession().createQuery("from SafeThreatenInfo");
return (List<SafeThreatenInfo>)query.list();
}
public RespInfoBO findRespBoById(String id) {
Query query=this.getSession().createQuery("from RespInfoBO r where r.id=:id");
query.setString("id", id);
return (RespInfoBO) query.uniqueResult();
}
public SafeThreatenInfo findSafeThreatenInfoById(String id) {
Query query=this.getSession().createQuery("from SafeThreatenInfo r where r.id=:id");
query.setString("id", id);
return (SafeThreatenInfo) query.list().get(0);
}
public List<ContiRespProc> findallByTwoId(RespInfoBO rid,
SafeThreatenInfo sid) {
Query query=this.getSession().createQuery("from ContiRespProc c where c.respInfo=:rid and c.safeThreaten=:sid");
query.setEntity("rid", rid);
query.setEntity("sid", sid);
return (List<ContiRespProc>)query.list();
}
public void delete(ContiRespProc con) {
this.getSession().delete(con);
}
public void update(ContiRespProc con) {
String sql="update ContiRespProc s set s.name=:name,s.content=:content where s.id=:id";
Query query=this.getSession().createQuery(sql);
query.setInteger("id", con.getId());
query.setString("name", con.getName());
query.setString("content",con.getContent());
query.executeUpdate();
}
public void save(ContiRespProc con) {
this.getSession().save(con);
}
public List<SafeThreatenInfo> findSafeNameById(String id) {
Query query=this.getSession().createQuery("from SafeThreatenInfo s where s.id=:id");
query.setInteger("id", Integer.parseInt(id));
return (List<SafeThreatenInfo>)query.list();
}
public void deleteProcByRespInfo(RespInfoBO resp) {
Query query=this.getSession().createQuery("delete from ContiRespProc c where c.respInfo=:resp");
query.setEntity("resp", resp);
int i=query.executeUpdate();
//System.out.println("deleteProcByRespInfo==="+i);
}
@SuppressWarnings("deprecation")
public int getCount(String respid,String safeid) {
Criteria criteria = getSession().createCriteria(ContiRespProc.class)
.addOrder(Order.asc("id"));
if(respid!=null ) {
criteria.add(Expression.eq("respInfo.id", Integer.parseInt(respid)));
}
if(safeid!=null &&!"".equals(safeid)) {
criteria.add(Expression.eq("safeThreaten.id", Integer.parseInt(safeid)));
}
return criteria.list().size();
}
}