Apabila menggunakan pangkalan data dalam memori H2 dengan URL "jdbc:h2:mem:test", pengguna mungkin menghadapi ralat "Jadual 'PERSON' not found" semasa cuba memilih data daripada jadual yang dibuat sebelum ini. Ralat ini berlaku kerana, secara lalai, H2 menutup sambungan pangkalan data selepas pembuatan jadual menggunakan ciri hbm2ddl Hypernate.
Untuk menyelesaikan isu ini dan mengekalkan kandungan pangkalan data, ubah suai URL sambungan kepada format berikut:
<code class="text">jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</code>
Parameter ini mengarahkan H2 untuk memastikan pangkalan data dalam memori terbuka selagi mesin maya Java (JVM) sedang berjalan. Dengan menambahkan koma bertitik (;) dan bukannya bertindih (:) antara URL dan parameter, anda boleh menentukan parameter tambahan.
Seperti yang dinyatakan dalam dokumentasi, "menutup sambungan terakhir ke pangkalan data akan menutup pangkalan data. Untuk pangkalan data dalam memori, ini bermakna kandungan itu hilang." Dengan menetapkan parameter DB_CLOSE_DELAY=-1, anda memastikan pangkalan data kekal terbuka sehingga JVM ditamatkan, mengekalkan data walaupun selepas sambungan ditutup.
Atas ialah kandungan terperinci Mengapa Ralat \'Jadual Tidak Ditemui\' Berlaku dengan Pangkalan Data Dalam Memori H2 dan Bagaimana untuk Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!