批量更新(Batch updates)

来源:互联网 发布:娶洋妞 知乎 编辑:程序博客网 时间:2024/05/01 20:21

此方法同样适用于检索和更新数据。此外,在进行会返回很多行数据的查询时, 你需要使用 scroll() 方法以便充分利用服务器端游标所带来的好处。 

Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();   ScrollableResults customers = session.getNamedQuery("GetCustomers")    .setCacheMode(CacheMode.IGNORE)    .scroll(ScrollMode.FORWARD_ONLY);int count=0;while ( customers.next() ) {    Customer customer = (Customer) customers.get(0);    customer.updateStuff(...);    if ( ++count % 20 == 0 ) {        //flush a batch of updates and release memory:        session.flush();        session.clear();    }}   tx.commit();session.close();

 

 

原创粉丝点击