Heim  >  Artikel  >  Java  >  Verstehen des Cache- und Snapshot-Bereichs der ersten Ebene in Hibernate

Verstehen des Cache- und Snapshot-Bereichs der ersten Ebene in Hibernate

巴扎黑
巴扎黑Original
2017-06-26 11:25:552194Durchsuche

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 SQL

wird 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn