只是批量增加的时候,用下面这个方法就够了。
@Transactional(propagation=Propagation.REQUIRED)
public void batchInsertTzzy(Collection objs) throws Exception{
Session session = utilDao.getHibernateSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
if (objs.size() > 0){
for(Iterator it=objs.iterator();it.hasNext();){
TbEduTzzy rs = (TbEduTzzy)it.next();
session.save(rs);
}
}
tx.commit();
}catch (Exception e){
tx.rollback();
throw e;
}finally{
if(session != null && session.isOpen()){
session.clear();
session.close();
}
}
}
如果是要增加或者是修改,则可以用saveOrUpdateAll这方法
@Transactional(propagation=Propagation.REQUIRED)
public void saveOrUpdateAll(Collection obj) throws Exception{
Session session = getHibernateTemplate().getSessionFactory().openSession();
Transaction tr = session.beginTransaction();
try{
getHibernateTemplate().saveOrUpdateAll(obj);
session.flush();
tr.commit();
}catch(Exception e){
if(tr != null){
tr.rollback();
}
e.printStackTrace();
Loggers.error("saveOrUpdateAll保存或修改对象错误"+e);
throw e;
}finally{
if(session != null & session.isOpen()){
session.clear();
session.close();
}
}
}