Heim  >  Artikel  >  Java  >  Warum tritt bei der H2-In-Memory-Datenbank der Fehler „Tabelle nicht gefunden“ auf und wie kann man ihn beheben?

Warum tritt bei der H2-In-Memory-Datenbank der Fehler „Tabelle nicht gefunden“ auf und wie kann man ihn beheben?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 03:21:03880Durchsuche

 Why does

H2-In-Memory-Datenbank: Beheben des Fehlers „Tabelle nicht gefunden“

Bei Verwendung einer H2-In-Memory-Datenbank mit der URL „jdbc:h2:mem:test“: Benutzer können beim Versuch, Daten aus einer zuvor erstellten Tabelle auszuwählen, auf die Fehlermeldung „Tabelle ‚PERSON‘ nicht gefunden“ stoßen. Dieser Fehler tritt auf, weil H2 standardmäßig die Datenbankverbindung nach der Tabellenerstellung mithilfe der hbm2ddl-Funktion von Hypernate schließt.

Um dieses Problem zu beheben und den Datenbankinhalt beizubehalten, ändern Sie die Verbindungs-URL in das folgende Format:

<code class="text">jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</code>

Dieser Parameter weist H2 an, die In-Memory-Datenbank geöffnet zu halten, solange die Java Virtual Machine (JVM) läuft. Durch das Hinzufügen eines Semikolons (;) anstelle eines Doppelpunkts (:) zwischen der URL und dem Parameter können Sie zusätzliche Parameter angeben.

In der Dokumentation heißt es: „Das Schließen der letzten Verbindung zu einer Datenbank schließt die Datenbank.“ Bei einer In-Memory-Datenbank bedeutet dies, dass der Inhalt verloren geht.“ Durch Festlegen des Parameters DB_CLOSE_DELAY=-1 stellen Sie sicher, dass die Datenbank geöffnet bleibt, bis die JVM beendet wird, und die Daten auch nach dem Schließen der Verbindung erhalten bleiben.

Das obige ist der detaillierte Inhalt vonWarum tritt bei der H2-In-Memory-Datenbank der Fehler „Tabelle nicht gefunden“ auf und wie kann man ihn beheben?. 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