Cache der ersten Ebene in den Ruhezustand versetzen - wird synchronisiert?

Mir ist bewusst, dass<a href="http://docs.jboss.org/hibernate/orm/3.5/javadoc/org/hibernate/Session.html" rel="nofollow">Session</a> ist der Cache der ersten Ebene, der von verwendet wirdÜberwinternund sobald wir eine Entität aus demsessionerhalten die nachfolgenden Anrufe für diegleiche Einheit mitgleiche Kennung wird von der abgerufensession statt DB bis zumsession istÖffnen.

Trotzdem habe ich Zweifel, wie der Ruhezustand den Cache der ersten Ebene mit der Datenbank synchronisiert. Stellen Sie sich das folgende Szenario vor

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

Also meine Frage ist

Schon seitu3 wird aus dem 1st Level Cache geholtu3 Wert aktualisiert haben?Wenn jemand die Datenbank direkt aktualisiert und das Benutzerobjekt ändert, während die Sitzung geöffnet ist, wird diesession Mit DB synchronisieren?

Vielen Dank im Voraus für Ihre Zeit und Mühe in diesem Thread

Antworten auf die Frage(3)

Ihre Antwort auf die Frage