Ist der Sitzungsthread von Hibernate sicher?

Ich muss wissen, ob die Sitzung des Ruhezustands threadsicher ist oder nicht. Es ist jedoch offensichtlich, dass jedem Thread eine neue Sitzung zur Ausführung angehängt wird. Aber meine Frage ist, ob ich in einem Thread einen bestimmten Wert einer Entität aktualisiert habe. Wird sich dies in einem anderen Thread während der Ausführung zur selben Zeit widerspiegeln?

Mein Problem ist, wenn ich das Update von zwei Threads nacheinander aus feuere, der Wert korrekt aktualisiert wird, aber wenn ich das Update fast vollständig auslöse, schlägt es fehl.

für zB. aktueller Stand der Tabelle.

  ID      NAME      MARKS
------- --------- --------
  1       John       54

Ich versuche folgendes zu tun:

Student student = session.load(Student.class, 1);
student.setMarks(student.getMarks() + 1);
session.update(student);
session.close();

Wenn ich versuche, den obigen Code in der Schleife "say 10" auszuführen, wird der Wert von "marks" in der Tabelle "student" richtig aktualisiert, d. H. Der Wert wird auf 64 aktualisiert, was richtig ist.

Aber wenn ich versuche, denselben Code in einer Thread-Umgebung auszuführen, werden schlechte Ergebnisse erzielt.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage