Question à propos de la session Hibernate.flush()

Je veux me renseigner sur ce que fait la méthode flush dans le cas suivant:

for (int i = 0; i < myList.size(); i++) {
    Car c = new Car( car.get(i).getId(),car.get(i).getName() );
    getCurrentSession().save(c);
    if (i % 20 == 0)
        getCurrentSession().flush();
}

N'cela signifie que, après l'itération 20, le cache est vidé, puis le 20 lieu de la mémoire les objets sont réellement enregistrées dans la base de données ?

Quelqu'un peut-il m'expliquer ce qui va se passer lorsque la condition est vraie.

  • Si personne ne répond vraiment à la question: est les données effectivement enregistrées dans la base de données ?...