session = HibernateUtils.getSession();
session.beginTransaction();
for (int i=0; i<1000; i++) {
Student student = new Student();
student.setName("s_" + i);
session.save(student);
if ( i % 30 == 0) {
session.flush();
session.clear();
}
}
session.getTransaction().commit();
这种形式的批处理与在hibernate.cfg.xml中定义<property name="hibernate.jdbc.batch_size">30</property>有什么区别?后者会不会清理缓存?