透過URL 使用H2 記憶體資料庫時「jdbc:h2:mem :test”,使用者在嘗試從先前建立的表中選擇資料時可能會遇到錯誤“未找到表'PERSON'”。出現此錯誤的原因是,預設情況下,H2 在使用 Hypernate 的 hbm2ddl 功能建立表後關閉資料庫連線。
要解決此問題並保留資料庫內容,請將連線URL 修改為以下格式:
<code class="text">jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</code>
此參數指示H2 只要Java 虛擬機器(JVM) 運行,就保持記憶體資料庫打開。透過在 URL 和參數之間新增分號 (;) 而不是冒號 (:),您可以指定其他參數。
如文件所述,「關閉與資料庫的最後一個連線將關閉資料庫。對於記憶體資料庫來說,這表示內容會遺失。」透過設定DB_CLOSE_DELAY=-1 參數,可以確保資料庫在JVM終止前保持開啟狀態,即使在連線關閉後也能保留資料。
以上是為什麼 H2 記憶體資料庫會出現「找不到表格」錯誤以及如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!