Zuerst dachte ich, dieser Schnappschussbereich sei schwer zu verstehen, nachdem ich viele Blogs online gelesen hatte, begann ich zu verstehen. Ich verstehe, dass es in ADO.NET eine Klasse namens SqlCommandBuilder gibt, die dem Hibernate-Snapshot-Bereich in ADO.NET entspricht, und wenn das Update ausgeführt wird Wenn die Methode aufgerufen wird, können die Informationen in der Datenbank aktualisiert werden (einschließlich Aktualisieren und Löschen). Eine der wesentlichen Aufzählungsklassen ist das Zeilenstatusbit der RowState-Klasse ) gilt als entsprechend. Beim Aktualisieren des Cache-Bereichs führt Hibernate jedoch einen Vergleich der Inhalte des Cache-Bereichs und des Snapshot-Bereichs durch (
Wenn ein Unterschied festgestellt wird, aktualisiert es den Snapshot-Bereich und speichert eine Update-SQL-Anweisung. Wenn dies nicht der Fall ist Aktualisierungsvorgang, aber sendet den Transaktionsvorgang, dann wird nicht nur die Aktualisierungsdatenanweisung gespeichert, sondern auch SQLwird an die Datenbank gesendet, um die Aktualisierungsdaten auszuführen), aber ADO.NET hat keinen Vergleich durchgeführt, sondern aufgezeichnet ( Das heißt, der RowStae-Wert der Zeile wurde geändert, und schließlich aktualisiert SqlCommandBuilder die Datenbank basierend auf diesem Statusbit und diesem Primärschlüssel. Aus einer bestimmten Perspektive ist der Vergleich tatsächlich auch eine Art Aufzeichnung (ähnlich der Änderung des Zeilenstatusbits). . Bis die Transaktion festgeschrieben ist, wird sie in der Datenbank aktualisiert.
Fügen Sie einen Satz hinzu: Ich verstehe unter einem Snapshot einen Snapshot der Datenbank (zunächst ein Snapshot bestimmter Zeilen der Datenbank und dann nach einem einzelnen Vorgang). kein Snapshot der Datenbank mehr) Es ist ein Snapshot, aber nachdem die Transaktion festgeschrieben wurde, wird er zu einem Snapshot eines Teils der Datenbankzeilen.)
Weitere Informationen zu SqlCommandBuilder finden Sie in diesem Blog
[SQLCommandBuilder-Klasse】
Es gibt auch diese Klasse[RowSate-Klasse ]
Vielleicht habe ich es nicht klar genug erklärt, aber das ist mein aktuelles Verständnis.Das obige ist der detaillierte Inhalt vonVerstehen des Cache- und Snapshot-Bereichs der ersten Ebene in Hibernate. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!