Hibernar caché de primer nivel - ¿Se sincroniza?

Soy consciente del hecho de que<a href="http://docs.jboss.org/hibernate/orm/3.5/javadoc/org/hibernate/Session.html" rel="nofollow">Session</a>&nbsp;es caché de primer nivel utilizado porHibernar, y una vez que recuperemos una entidad de lasession, las subsiguientes llamadas para elmisma entidad&nbsp;conmismo identificador&nbsp;se obtiene de lasession&nbsp;en lugar de DB, hasta quesession&nbsp;esAbierto.

Dicho esto, tengo una duda sobre cómo hibernar sincroniza el caché de primer nivel con DB. Considere el siguiente escenario

//Lets say I have created the session

Session s1 = sessionFactory.getSession();
User u1 = s1.get(User.class, 1); //Getting User with ID=1
//s1 is not yet closed

//Lets say I create some other session

Session s2 = sessionFactory.getSession();
User u2 = s2.get(User.class, 1); //Getting User with ID=1
u2.setName("Abc"); // Changed a field
s2.save(u2); // Saved the changes to DB
s2.close(); //Closed the 2nd session

//Now when I once again retrieve User with ID=1 from s1, will I get updated User?
User u3 = s1.get(User.class, 1);// Here as per my understanding cache is used

Así que mi pregunta es

Ya queu3&nbsp;se obtiene de la caché de primer nivel, haceu3&nbsp;tener valor actualizado?Si alguien actualiza directamente la base de datos y modifica el objeto Usuario cuando la sesión está abierta,session&nbsp;sincronizar con DB?

Gracias de antemano por su tiempo y esfuerzo en este hilo