Hibernate кэш первого уровня - синхронизируется ли он?

Я осознаю тот факт, что<a href="http://docs.jboss.org/hibernate/orm/3.5/javadoc/org/hibernate/Session.html" rel="nofollow">Session</a> кеш первого уровня используетсязимоватьи как только мы извлекаем сущность изsession, последующие вызовы длята же сущность с участиемтот же идентификатор извлекается изsession вместо БД, покаsession являетсяоткрыто.

Сказав это, у меня есть сомнения относительно того, как Hibernate синхронизирует кэш первого уровня с БД? Рассмотрим следующий сценарий

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

Итак, мой вопрос

посколькуu3 выбирается из кэша 1-го уровня, делаетu3 обновили значение?Если кто-то непосредственно обновляет БД и изменяет объект User, когда сеанс открыт,session синхронизировать с БД?

Заранее спасибо за ваше время и усилия в этой теме

Ответы на вопрос(3)

Ваш ответ на вопрос