package edu.sjtu.infosec.ismp.manager.EM.dao.impl;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import edu.sjtu.infosec.ismp.manager.EM.dao.IEventtaskseleDao;
import edu.sjtu.infosec.ismp.manager.EM.model.Eventtasksele;
/**
* 自选事件表的DAO实现
* @author wudengke 2009-6-29
*
*/
public class EventtaskseleDao extends HibernateDaoSupport implements IEventtaskseleDao {
/**
* 添加单个对象。
* @param data 需要添加的对象。
*
*/
public void add(Eventtasksele data) {
getHibernateTemplate().save(data);
}
/**
* 删除指定的对象。
* @param data
*
*/
public void delete(Eventtasksele data) {
getHibernateTemplate().delete(data);
}
/**
* 通过查询Eventrealdisp对象
*
* @param id
*
*/
public Eventtasksele get(Serializable id) {
return (Eventtasksele) getHibernateTemplate().get(Eventtasksele.class, id);
}
/**
* 修改指定的对象的内容,注意对象的主键不能修改。
*
* @param data 需要修改的对象。
*
*
*/
public void update(Eventtasksele data) {
getHibernateTemplate().saveOrUpdate(data);
}
/**
* 通过用户自定义的编号查询
* @param ids
* @return List<Eventtasksele>
*/
@SuppressWarnings("unchecked")
public List<Eventtasksele> queryEventtaskseleBydefineid(final String userName,final Serializable define_id) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(Eventtasksele.class);
criteria.add(Restrictions.eq("userName", userName));
criteria.add(Restrictions.eq("define_id", (Integer)define_id));
List list = criteria.list();
return list;
}
});
}
/**
* 添加多个对象。
*
* @param data
*
*/
public void add(List<Eventtasksele> datas) {
getHibernateTemplate().saveOrUpdateAll(datas);
}
/**
* 删除指定的多个对象。
* @param data
*
*/
public void delete(String userName,String define_id,List<Serializable> ids) {
Iterator<Serializable> it = ids.iterator();
StringBuffer buffer = new StringBuffer();
buffer.append("delete from Eventtasksele e where e.define_id="+define_id+" and e.userName='"+userName+"' and e.faci_ip in (");
while (it.hasNext()) {
buffer.append("?");
it.next();
if (it.hasNext()) {
buffer.append(",");
}
}
buffer.append(")");
getHibernateTemplate().bulkUpdate(buffer.toString(), ids.toArray());
}
}