public void batchDelete(final Integer[] arrayID) {
this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
String hql = "delete from Userdb as model where model.id = :id";
Query query = session.createQuery(hql);
for(int i=0; i<arrayID.length; i++) {
query.setString("id", String.valueOf(arrayID[i]));
query.executeUpdate();
}
return null;
}
});
}ssh结构
批量删除,这样写可以吗
已经写了aop事务管理,还需要写Transaction ta = session.beginTransaction();这句吗
this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
String hql = "delete from Userdb as model where model.id = :id";
Query query = session.createQuery(hql);
for(int i=0; i<arrayID.length; i++) {
query.setString("id", String.valueOf(arrayID[i]));
query.executeUpdate();
}
return null;
}
});
}ssh结构
批量删除,这样写可以吗
已经写了aop事务管理,还需要写Transaction ta = session.beginTransaction();这句吗
<session-factory>
.........
<property name=” hibernate.jdbc.batch_size”>10</property> 2
query.executeUpdate();if(i%50==0) //以每50个数据作为一个处理单元
...{
session.flush(); //保持与数据库数据的同步
session.clear(); //清除内部缓存的全部数据,及时释放出占用的内存
}
3 如果你没有做spring 的声明式事物定义,在这里就要开启事物