ホームページ  >  記事  >  Java  >  H2 インメモリ データベースで「テーブルが見つかりません」エラーが発生する理由とその修正方法

H2 インメモリ データベースで「テーブルが見つかりません」エラーが発生する理由とその修正方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-26 03:21:03880ブラウズ

 Why does

H2 インメモリ データベース: 「テーブルが見つかりません」エラーの解決

URL で H2 インメモリ データベースを使用する場合「jdbc:h2:mem:test」の場合、ユーザーは以前に作成したテーブルからデータを選択しようとすると、「テーブル 'PERSON' が見つかりません」というエラーが発生することがあります。このエラーは、デフォルトで、H2 が Hypernate の hbm2ddl 機能を使用してテーブル作成後にデータベース接続を閉じるために発生します。

この問題を解決し、データベースの内容を保持するには、接続 URL を次の形式に変更します。

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

このパラメータは、Java 仮想マシン (JVM) が実行されている限り、インメモリ データベースを開いたままにするように H2 に指示します。 URL とパラメーターの間にコロン (:) の代わりにセミコロン (;) を追加すると、追加のパラメーターを指定できます。

ドキュメントに記載されているように、「データベースへの最後の接続を閉じると、データベースが閉じられます。インメモリ データベースの場合、これはコンテンツが失われることを意味します。」 DB_CLOSE_DELAY=-1 パラメータを設定すると、JVM が終了するまでデータベースが開いたままになり、接続が閉じられた後でもデータが保持されます。

以上がH2 インメモリ データベースで「テーブルが見つかりません」エラーが発生する理由とその修正方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。