Pamięć podręczna pierwszego poziomu Hibernate - czy synchronizuje?

Jestem świadomy tego, że<a href="http://docs.jboss.org/hibernate/orm/3.5/javadoc/org/hibernate/Session.html" rel="nofollow">Session</a> to pamięć podręczna pierwszego poziomu używana przezHibernowaći po odzyskaniu istoty zsession, kolejne wywołania dlaten sam podmiot zten sam identyfikator jest pobierany zsession zamiast DB, aż dosession jestotwarty.

Powiedziawszy to, mam wątpliwości, jak hibernacja synchronizuje pamięć podręczną pierwszego poziomu z DB? Rozważmy następujący scenariusz

//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

Więc moje pytanie jest

Odu3 jest pobierany z pamięci podręcznej pierwszego poziomuu3 masz zaktualizowaną wartość?Jeśli ktoś bezpośrednio aktualizuje DB i modyfikuje obiekt użytkownika, gdy sesja jest otwarta, robisession synchronizować z DB?

Z góry dziękuję za poświęcony czas i wysiłek na ten wątek

questionAnswers(3)

yourAnswerToTheQuestion