eric-1001c

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  3 随笔 :: 45 文章 :: 12 评论 :: 0 Trackbacks
Spring+Hibernate 的HibernateTemplate 只提供了单个object的delete,对于某些应用来说,要大量删除数据,只能通过不断的load object,delete object。这种做法效率低。
利用hibernate提供的回调机制,可以实现批量删除,具体方法是:

 1getHibernateTemplate().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  }
);

这种做法hibernate只会生成一条sql,效率相对较高。但是利用回调机制,尽管能删除数据库的数据,而一级缓存中的数据并没有删掉,因此在使用的时候要格外小心
posted on 2008-08-05 14:41 Eric-1001c 阅读(1018) 评论(0)  编辑  收藏 所属分类: Hibernate

只有注册用户登录后才能发表评论。


网站导航: