Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
No podemos tener en la sesión de hibernate demasiados objetos porque nos quedaríamos sin memoria. en su lugar haremos un procesamiento por lotes, procesando los registros de 20 en 20 y liberando la sesión
hibernate.cfg.xml
<property name="hibernate.jdbc.batch_size">20</property>
<property name="hibernate.cache.use_second_level_cache">false</property>
Main.java
public class Main {
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
for (int i = 0; i < 100000; i++) {
Libro l = new Libro();
l.setTitulo("El Quijote " + i);
session.save(l);
if (i % 20 == 0) { // 20, same as the JDBC batch size
// flush a batch of inserts and release memory:
session.flush();
session.clear();
}
}
tx.commit();
session.close();
}
}
Documentación oficial:
https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/chapters/batch/Batching.html