Heim Datenbank MySQL-Tutorial Hibernate持久化对象的状态

Hibernate持久化对象的状态

Jun 07, 2016 pm 04:09 PM
hibernate 对象 持久化 状态 角度

1. 站在持久化的角度 , Hibernate 把对象分为 4 种状态 : 持久化状态 , 临时状态 , 游离状态(脱管状态) , 删除状态.Session 的特定方法能使对象从一个状态转换到另一个状态 . 2. 临时状态(Transient) : 1). 在使用代理主键的情况下 , OID 通常为 null 2

1. 站在持久化的角度 , Hibernate 把对象分为 4 种状态 : 持久化状态, 临时状态, 游离状态(脱管状态) , 删除状态.Session 的特定方法能使对象从一个状态转换到另一个状态 .
2. 临时状态(Transient) : 1). 在使用代理主键的情况下 , OID 通常为 null 2). 不处于 Session 的缓存中 3). 在数据库中没有对应的记录
3. 持久化状态(也叫”托管” )( Persist)
1). OID 不为 null 2). 位于 Session 缓存中 3). 若在数据库中已经有和其对应的记录 , 持久化对象和数据库中的相关记录对应 4). Session 在 flush 缓存时 , 会根据持久化对象的属性变化 , 来同步更新数据库 5). 在同一个 Session 实例的缓存中 , 数据库表中的每条记录只对应唯一的持久化对象( Session 缓存对象的 OID 不能重复)
@Test public void testOID(){ News news2 = (News ) session.get (News.class , 1); System.out.println (news2 ); News news = new News (); news.setAuthor ("Oracle2" ); news.setContent ("Oracle DB" ); news.setDate (new Date ()); news.setTitle ("DB" ); news.setId (1 ); //抛出异常: org.hibernate.NonUniqueObjectException session.update (news ); }
4. 游离状态(也叫”脱管” ) (Detached ): 1). OID 不为 null 2). 不再处于 Session 缓存中 3). 一般情况需下 , 游离对象是由持久化对象转变过来的 , 因此在数据库中可能还存在与它对应的记录
5. 删除状态(Removed) 1). 在数据库中没有和其 OID 对应的记录 2). 不再处于 Session 缓存中 3). 一般情况下 , 应用程序不该再使用被删除的对象
6. 状态的转换图 \ \
7. get & load 的区别: 共同点: get、load 从数据表中加载一个对象 , 加载后即为持久化状态的对象 不同点: get:喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPiDBory0sunRr8r9vt2x7S4gyPTDu9PQttTTprXEvMfCvCA8c3Ryb25nPiw8L3N0cm9uZz4gt7W72CBudWxsIKO7CgogICAgPHN0cm9uZz5sb2FkPC9zdHJvbmc+PHN0cm9uZz46PC9zdHJvbmc+INHTs9my6dGvyv2+3bHtIC4g1rG1vbXa0ru0zsq508O4w7bUz/PKsSA8c3Ryb25nPiw8L3N0cm9uZz4g1Nm9+NDQsunRr6OsCgogICAgz8i3tbvYtcTKx9K7uPa0+sDtttTP8yAuIMj0w7vT0LbU06a1xLzHwrwgPHN0cm9uZz4sPC9zdHJvbmc+sqLH0sq508PBy7jDttTP8yA8c3Ryb25nPiw8L3N0cm9uZz4g1PK74cXXs/ZvcmcuaGliZXJuYXRlLk9iamVjdE5vdEZvdW5kRXhjZXB0aW9uINLss6MKCjxicj4KCgo8YnI+CgoKOC4gdXBkYXRlILe9t6ijugoKPGJyPgoKCiAgICBAVGVzdAoKICAgIHB1YmxpYyB2b2lkIHRlc3RVcGRhdGU8c3Ryb25nPigpezwvc3Ryb25nPgoKICAgICAgICBOZXdzIG5ld3MgPHN0cm9uZz49PC9zdHJvbmc+IDxzdHJvbmc+KDwvc3Ryb25nPk5ld3MgPHN0cm9uZz4pPC9zdHJvbmc+IHNlc3Npb24uZ2V0IDxzdHJvbmc+KDwvc3Ryb25nPk5ld3MuY2xhc3MgPHN0cm9uZz4sPC9zdHJvbmc+IDE8c3Ryb25nPik7PC9zdHJvbmc+CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiA8c3Ryb25nPig8L3N0cm9uZz5uZXdzIDxzdHJvbmc+KTs8L3N0cm9uZz4KCiAgICAKCiAgICAgICAgdHJhbnNhY3Rpb24uY29tbWl0IDxzdHJvbmc+KCk7PC9zdHJvbmc+CgogICAgICAgIHNlc3Npb24uY2xlYXIgPHN0cm9uZz4oKTs8L3N0cm9uZz4KCiAgICAKCiAgICAgICAgc2Vzc2lvbiA8c3Ryb25nPj08L3N0cm9uZz4gc2Vzc2lvbkZhY3Rvcnkub3BlblNlc3Npb24gPHN0cm9uZz4oKTs8L3N0cm9uZz4KCiAgICAgICAgdHJhbnNhY3Rpb24gPHN0cm9uZz49PC9zdHJvbmc+IHNlc3Npb24uYmVnaW5UcmFuc2FjdGlvbiA8c3Ryb25nPigpOzwvc3Ryb25nPgoKICAgIAoKICAgICAgICAgPHN0cm9uZz4vLzwvc3Ryb25nPrTLyrG21M/zzqrTzsDr17TMrAoKICAgICAgICBuZXdzLnNldEF1dGhvciA8c3Ryb25nPig8L3N0cm9uZz4mcXVvdDtPcmFjbGUmcXVvdDsgPHN0cm9uZz4pOzwvc3Ryb25nPgoKICAgIAoKICAgICAgICAgPHN0cm9uZz4vLzwvc3Ryb25nPnVwZGF0ZSC/ydLUyrnTzsDrttTP87Hkzqqz1r7Du6+21M/zIC4KCiAgICAgICAgIDxzdHJvbmc+Ly88L3N0cm9uZz7NqLOj0OjSqreiy83Su8z1IFVQREFURSDT777kCgogICAgICAgICA8c3Ryb25nPi8vPC9zdHJvbmc+yPS21M/zvLTOqrPWvsO7r7bUz/MgPHN0cm9uZz4sPC9zdHJvbmc+INTysrvQ6NKqtffTwyB1cGRhdGU8c3Ryb25nPigpPC9zdHJvbmc+ILe9t6gKCiAgICAgICAgc2Vzc2lvbi51cGRhdGUgPHN0cm9uZz4oPC9zdHJvbmc+bmV3cyA8c3Ryb25nPik7PC9zdHJvbmc+CgogICAgPHN0cm9uZz59PC9zdHJvbmc+Cgo8YnI+CgoK16LS4qO6Cgoxo6kgLiDKudPDs6G+sKO6IEJcUyDP7sS/1tC009Kzw+a0q7n9wLTSu7j2ttTP86Os0OjSqrbUxuS9+NDQuPzQwsqxo6y8tLX308MgdXBkYXRlo6ijqbe9t6gKCjKjqSAuIMj0yv2+3bHt1tDDu9PQttTP87bU06a1xLzHwryjrLu50qrWtNDQIHVwZGF0ZTxzdHJvbmc+KCk8L3N0cm9uZz4gt723qKOs1PK74cXXs/bS7LOjo7ogb3JnLmhpYmVybmF0ZS5TdGFsZU9iamVjdFN0YXRlRXhjZXB0aW9uCgo8YnI+CgoKOS4gc2F2ZU9yVXBkYXRlIDxzdHJvbmc+KCk6PC9zdHJvbmc+ILGjtOa78rj80MIKCjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/2014/1107/20141107092134167.png" alt="\">
11. delete ():删除一个对象对应的记录。 1). 若只想删除指定的对象,设置 ID 即可。 2). 若数据表中没有对应的记录,则抛出异常: java.lang.IllegalArgumentException
12. Hibernate 调用原生的 JDBC API:
session.doWork(new Work() { @Override public void execute(Connection connection ) throws SQLException { //使用 JDBC 原生的 API } });

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verbindungsstatus im Standby: Getrennt, Grund: NIC-Konformität Verbindungsstatus im Standby: Getrennt, Grund: NIC-Konformität Feb 19, 2024 pm 03:15 PM

„Der Verbindungsstatus in der Ereignisprotokollmeldung lautet „Standby: Aufgrund von NIC-Konformität getrennt“. Dies bedeutet, dass sich das System im Standby-Modus befindet und die Netzwerkschnittstellenkarte (NIC) getrennt wurde. Dies ist zwar normalerweise ein Netzwerkproblem, kann aber passieren auch durch Software- und Hardwarekonflikte verursacht werden. In der folgenden Diskussion werden wir untersuchen, wie dieses Problem gelöst werden kann. „Was sind die Ursachen für die Unterbrechung der Standby-Verbindung?“ NIC-Konformität? Wenn in der Windows-Ereignisanzeige die Meldung „ConnectivityStatusinStandby:DisConnected,Reason:NICCompliance“ angezeigt wird, weist dies darauf hin, dass möglicherweise ein Problem mit Ihrer Netzwerkkarte oder Ihrem Netzwerkschnittstellen-Controller vorliegt. Diese Situation ist normalerweise der Fall

So implementieren Sie Daten-Caching und -Persistenz in Vue So implementieren Sie Daten-Caching und -Persistenz in Vue Oct 15, 2023 pm 01:06 PM

So implementieren Sie Daten-Caching und -Persistenz in Vue In Vue sind Daten-Caching und -Persistenz eine häufige Anforderung. Das Zwischenspeichern von Daten kann die Anwendungsleistung verbessern, während persistente Daten es Benutzern ermöglichen, zuvor gespeicherte Daten weiterhin anzuzeigen, nachdem sie die Seite aktualisiert oder die Anwendung erneut geöffnet haben. Im Folgenden wird erläutert, wie Daten mithilfe einiger gängiger Methoden zwischengespeichert und gespeichert werden. Verwenden von Vuex zur Implementierung des Datencachings Vuex ist die offizielle Statusverwaltungsbibliothek von Vue, mit der der Status aller Komponenten der Anwendung zentral verwaltet werden kann. Wir können Vuex nutzen

Konvertieren Sie ein Array oder Objekt mit der json_encode()-Funktion von PHP in einen JSON-String Konvertieren Sie ein Array oder Objekt mit der json_encode()-Funktion von PHP in einen JSON-String Nov 03, 2023 pm 03:30 PM

JSON (JavaScriptObjectNotation) ist ein leichtes Datenaustauschformat, das sich zu einem gängigen Format für den Datenaustausch zwischen Webanwendungen entwickelt hat. Die json_encode()-Funktion von PHP kann ein Array oder Objekt in einen JSON-String konvertieren. In diesem Artikel wird die Verwendung der json_encode()-Funktion von PHP vorgestellt, einschließlich Syntax, Parametern, Rückgabewerten und spezifischen Beispielen. Syntax Die Syntax der Funktion json_encode() lautet wie folgt: st

So legen Sie den Momo-Status fest So legen Sie den Momo-Status fest Mar 01, 2024 pm 12:10 PM

Momo, eine bekannte soziale Plattform, bietet Nutzern eine Fülle funktionaler Dienste für ihre täglichen sozialen Interaktionen. Auf Momo können Benutzer ganz einfach ihren Lebensstatus teilen, Freunde finden, chatten usw. Unter anderem ermöglicht die Einstellungsstatusfunktion Benutzern, anderen ihre aktuelle Stimmung und ihren Status zu zeigen und so die Aufmerksamkeit und Kommunikation von mehr Menschen zu erregen. Wie können Sie Ihren eigenen Momo-Status festlegen? Im Folgenden erhalten Sie eine detaillierte Einführung! Wie stelle ich den Status auf Momo ein? 1. Öffnen Sie Momo, klicken Sie unten rechts auf „Mehr“, suchen Sie nach „Täglicher Status“ und klicken Sie darauf. 2. Wählen Sie den Status aus. 3. Der Einstellungsstatus wird angezeigt.

So überprüfen Sie den Serverstatus So überprüfen Sie den Serverstatus Oct 09, 2023 am 10:10 AM

Zu den Methoden zum Anzeigen des Serverstatus gehören Befehlszeilentools, grafische Schnittstellentools, Überwachungstools, Protokolldateien und Remoteverwaltungstools. Detaillierte Einführung: 1. Verwenden Sie Befehlszeilentools, um den Status des Servers anzuzeigen. 2. Verwenden Sie grafische Schnittstellentools Vom System bereitgestellte Schnittstellentools zum Anzeigen des Serverstatus. 3. Verwenden Sie Überwachungstools, um den Serverstatus usw. zu überwachen.

Was ist das Request-Objekt in PHP? Was ist das Request-Objekt in PHP? Feb 27, 2024 pm 09:06 PM

Das Request-Objekt in PHP ist ein Objekt, das zur Verarbeitung von HTTP-Anfragen verwendet wird, die vom Client an den Server gesendet werden. Über das Request-Objekt können wir die Anforderungsinformationen des Clients abrufen, z. B. die Anforderungsmethode, die Anforderungsheaderinformationen, die Anforderungsparameter usw., um die Anforderung zu verarbeiten und zu beantworten. In PHP können Sie globale Variablen wie $_REQUEST, $_GET, $_POST usw. verwenden, um angeforderte Informationen zu erhalten, aber diese Variablen sind keine Objekte, sondern Arrays. Um Anfrageinformationen flexibler und bequemer bearbeiten zu können, können Sie dies tun

Wie konvertiere ich ein MySQL-Abfrageergebnisarray in ein Objekt? Wie konvertiere ich ein MySQL-Abfrageergebnisarray in ein Objekt? Apr 29, 2024 pm 01:09 PM

So konvertieren Sie ein MySQL-Abfrageergebnis-Array in ein Objekt: Erstellen Sie ein leeres Objekt-Array. Durchlaufen Sie das resultierende Array und erstellen Sie für jede Zeile ein neues Objekt. Verwenden Sie eine foreach-Schleife, um die Schlüssel-Wert-Paare jeder Zeile den entsprechenden Eigenschaften des neuen Objekts zuzuweisen. Fügt dem Objektarray ein neues Objekt hinzu. Schließen Sie die Datenbankverbindung.

Detaillierte Erläuterung der fünf Zustände von Java-Threads und Zustandsübergangsregeln Detaillierte Erläuterung der fünf Zustände von Java-Threads und Zustandsübergangsregeln Feb 19, 2024 pm 05:03 PM

Vertiefendes Verständnis der fünf Zustände von Java-Threads und ihrer Konvertierungsregeln 1. Einführung in die fünf Zustände von Threads In Java kann der Lebenszyklus eines Threads in fünf verschiedene Zustände unterteilt werden, einschließlich des neuen Zustands (NEW) und des Bereitschaftszustands (RUNNABLE), Laufstatus (RUNNING), Blockierungsstatus (BLOCKED) und Beendigungsstatus (TERMINATED). Neuer Zustand (NEU): Wenn das Thread-Objekt erstellt wird, befindet es sich im neuen Zustand. Zu diesem Zeitpunkt hat das Thread-Objekt genügend Ressourcen zugewiesen, um die Aufgabe auszuführen

See all articles