package org.infosec.ismp.manager.winsensor.history.dao.impl;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.infosec.ismp.manager.winsensor.Constants;
import org.infosec.ismp.manager.winsensor.history.dao.HostResourceHistoryDao;
import org.infosec.ismp.manager.winsensor.history.entity.HostResourceHistoryBO;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* @author Rocky
* @version create time: Dec 31, 2010 1:57:19 PM
*
*/
public class HostResourceHistoryDaoImpl extends HibernateDaoSupport implements HostResourceHistoryDao {
@Override
public void addHistory(HostResourceHistoryBO history) {
getHibernateTemplate().save(history);
}
@Override
public void addHistory(List<HostResourceHistoryBO> histories) {
Session session = getSessionFactory().openSession();
Transaction transaction = null;
try {
transaction = session.beginTransaction();
for (int i = 0; i < histories.size(); i++) {
session.save(histories.get(i));
if (i % Constants.HIBERNATE_JDBC_BATCH_SIZE == 0) {
session.flush();
session.clear();
}
}
transaction.commit();
} catch (Exception e) {
if (transaction != null) {
transaction.rollback();
}
} finally {
if (session != null) {
session.close();
}
}
}
}