session.flush()

Este método se asegura de que la información ha sido persistida en la base de datos, de forma que ya sea posible cerrar con seguridad la session.

Si haces un flush y un close, se persisten los cambios en la base de datos

Este método es ejecutado automáticamente por session.close(), no obstante es recomendable que siempre lo ejecutemos explícitamente justo antes.

Puede ser útil hacer un flush para recuperar la id autoincrementada de un objeto recien insertado. Ejemplo:

session.save(persona);
session.flush();
id = persona.getId();