package edu.sjtu.infosec.ismp.manager.BSAM.dao.impl; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import edu.sjtu.infosec.ismp.manager.BSAM.comm.BaseDaoHibernate; import edu.sjtu.infosec.ismp.manager.BSAM.dao.MachineCabinetDao; import edu.sjtu.infosec.ismp.manager.BSAM.model.MachineCabinet; import edu.sjtu.infosec.ismp.security.Domain; public class MachineCabinetDaoImpl extends BaseDaoHibernate implements MachineCabinetDao { @SuppressWarnings("unchecked") public List getMachineCabinetList() { StringBuffer hql = new StringBuffer("from MachineCabinet"); return getHibernateTemplate().find(hql.toString()); } @SuppressWarnings("unchecked") public List getMachineCabinetList(int startResult, int maxResult) { String hql = "from MachineCabinet order by id "; Session session = this.getSession(); Query query = session.createQuery(hql); query.setFirstResult(startResult); query.setMaxResults(maxResult); return query.list(); } @SuppressWarnings("unchecked") public List getMachineCabinetListByDomain(List<Domain> userDomainList,int startResult, int maxResult) { if(null == userDomainList || userDomainList.size() <= 0){ return null; } StringBuffer userDomainStr = new StringBuffer(); ///遍历userDomainList,将domain的id组成一个字符串 for (int i = 0; i < userDomainList.size(); i++) { if(i != (userDomainList.size()-1)){ userDomainStr.append(userDomainList.get(i).getId()).append(","); }else{ userDomainStr.append(userDomainList.get(i).getId()); } } StringBuffer hql = new StringBuffer("from MachineCabinet a where 1=1 and a.machineRoom.domain.id in (" + userDomainStr + ") "); Query query = this.getSession().createQuery(hql.toString()); query.setFirstResult(startResult); query.setMaxResults(maxResult); return query.list(); } @SuppressWarnings("unchecked") public List getMachineCabinetListByDomain(List<Domain> userDomainList) { if(null == userDomainList || userDomainList.size() <= 0){ return null; } StringBuffer userDomainStr = new StringBuffer(); ///遍历userDomainList,将domain的id组成一个字符串 for (int i = 0; i < userDomainList.size(); i++) { if(i != (userDomainList.size()-1)){ userDomainStr.append(userDomainList.get(i).getId()).append(","); }else{ userDomainStr.append(userDomainList.get(i).getId()); } } StringBuffer hql = new StringBuffer("from MachineCabinet a where 1=1 and a.machineRoom.domain.id in (" + userDomainStr + ") "); Query query = this.getSession().createQuery(hql.toString()); return query.list(); } public void saveOrUpdateMachineCabinet(MachineCabinet machineCabinet) { getHibernateTemplate().saveOrUpdate(machineCabinet); } @SuppressWarnings("unchecked") public int getCount() { int num=0; List list=getHibernateTemplate().find("from MachineCabinet"); if (null != list && list.size() > 0) { num = list.size(); } return num; } public int getCountByDomain(List<Domain> userDomainList) { if(null == userDomainList || userDomainList.size() <= 0){ return 0; } StringBuffer userDomainStr = new StringBuffer(); ///遍历userDomainList,将domain的id组成一个字符串 for (int i = 0; i < userDomainList.size(); i++) { if(i != (userDomainList.size()-1)){ userDomainStr.append(userDomainList.get(i).getId()).append(","); }else{ userDomainStr.append(userDomainList.get(i).getId()); } } StringBuffer hql = new StringBuffer("from MachineCabinet a where 1=1 and a.machineRoom.domain.id in (" + userDomainStr + ") "); Query query = this.getSession().createQuery(hql.toString()); int num = 0; if (null != query.list()&& query.list().size() > 0) { num = query.list().size(); } return num; } @SuppressWarnings("unchecked") public List getSubUnitById(String id, int startResult, int maxResult) { StringBuffer hql = new StringBuffer("from Machine a where 1=1 "); hql.append(" and a.machineCabinet.id = "); hql.append(id); hql.append(" order by a.id"); Session session = this.getSession(); Query query = session.createQuery(hql.toString()); query.setFirstResult(startResult); query.setMaxResults(maxResult); return query.list(); } @SuppressWarnings("unchecked") public List getSubUnitById(String id) { StringBuffer hql = new StringBuffer("from Machine a where 1=1 "); hql.append(" and a.machineCabinet.id = "); hql.append(id); hql.append(" order by a.id"); Session session = this.getSession(); Query query = session.createQuery(hql.toString()); return query.list(); } public int getSubUnitCountById(String id) { StringBuffer hql = new StringBuffer("from Machine a where 1=1 "); hql.append(" and a.machineCabinet.id = "); hql.append(id); hql.append(" order by a.id"); Session session = this.getSession(); Query query = session.createQuery(hql.toString()); int num = 0; if (null != query.list()&& query.list().size() > 0) { num = query.list().size(); } return num; } @SuppressWarnings("unchecked") public List<MachineCabinet> getMachineCabinetByName(String name) { StringBuffer hql = new StringBuffer("from MachineCabinet a where 1=1 and a.machineCabinetName = :name "); Query query = this.getSession().createQuery(hql.toString()); query.setString("name", name); return query.list(); } }