我有一个包含1000个元素的对象ArrayList,我想将其分成大小为100的批次。
在Java 8中如何以优雅的方式实现?
我需要对以下实体进行迭代,其大小为1000:
List<CustomerAgreement> customerAgreement
现在,我将在上述方法之后调用以下方法。
customerAgreementDao.createAll(customerAgreement);
customerAgreementDao.flush();
如何从上述实体创建批处理并在其中调用上述两种方法?
目前的标准做法有些类似于:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
for ( int i=0; i<888888; i++ ) {
TableA record = new TableA();
record.setXXXX();
session.save(record)
if ( i % 50 == 0 ) {
session.flush();
session.clear();
}
}
tx.commit();
session.close();
public void consumerTest() { AtomicInteger ai = new AtomicInteger(0); IntStream.range(0, 100).boxed().map(Table::new) .forEach(r -> this.forEachConsumer(r, ai.addAndGet(1))); } public void forEachConsumer(Table table, Integer counter) { System.out.println(counter); if (counter % 30 == 0) { System.err.println(counter); } }
我不建议在生产环境中使用此代码。 - bananas