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> es caché de primer nivel utilizado porHibernar, y una vez que recuperemos una entidad de lasession, las subsiguientes llamadas para elmisma entidad conmismo identificador se obtiene de lasession en lugar de DB, hasta quesession 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 se obtiene de la caché de primer nivel, haceu3 tener valor actualizado?Si alguien actualiza directamente la base de datos y modifica el objeto Usuario cuando la sesión está abierta,session sincronizar con DB?

Gracias de antemano por su tiempo y esfuerzo en este hilo

Respuestas a la pregunta(3)

Su respuesta a la pregunta