Spring+Hibernate 的HibernateTemplate 只提供了單個object的delete,對于某些應用來說,要大量刪除數據,只能通過不斷的load object,delete object。這種做法效率低。
利用hibernate提供的回調機制,可以實現批量刪除,具體方法是:
這種做法hibernate只會生成一條sql,效率相對較高。但是利用回調機制,盡管能刪除數據庫的數據,而一級緩存中的數據并沒有刪掉,因此在使用的時候要格外小心
利用hibernate提供的回調機制,可以實現批量刪除,具體方法是:
1
getHibernateTemplate().execute(new HibernateCallback(){
2
public Object doInHibernate(Session session) throws HibernateException, SQLException {
3
List result = new ArrayList();
4
String hql = "delete Object";
5
Query query = session.createQuery(hql);
6
result.add(new Integer(query.executeUpdate()));
7
return result;
8
}
9
10
});

2

3

4

5

6

7

8

9

10

這種做法hibernate只會生成一條sql,效率相對較高。但是利用回調機制,盡管能刪除數據庫的數據,而一級緩存中的數據并沒有刪掉,因此在使用的時候要格外小心