我有一個帶有URL的H2數據庫"jdbc:h2:test"。我使用創建表格CREATE TABLE PERSON (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(64), LASTNAME VARCHAR(64));。然后,我使用從(空)表中選擇所有內容SELECT * FROM PERSON。到現在為止還挺好。但是,如果將URL更改為"jdbc:h2:mem:test",唯一的區別是數據庫現在僅在內存中,這給了我一個org.h2.jdbc.JdbcSQLException: Table "PERSON" not found; SQL statement: SELECT * FROM PERSON [42102-154]。我可能在這里缺少一些簡單的東西,但是任何幫助將不勝感激。
3 回答

白衣染霜花
TA貢獻1796條經驗 獲得超10個贊
hbm2ddl在創建表后關閉連接,因此h2放棄該連接。
如果您的連接網址是這樣配置的
jdbc:h2:mem:test
在最后一個連接關閉時,數據庫的內容會丟失。
如果要保留內容,則必須像這樣配置網址
jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
如果這樣做,h2將保留其內容,直到虛擬機存活。

慕哥6287543
TA貢獻1831條經驗 獲得超10個贊
我知道這不是您的情況,但我遇到了同樣的問題,因為即使我在所有腳本(包括創建腳本)中都使用小寫字母,H2都使用大寫名稱創建表,然后區分大小寫。
通過添加;DATABASE_TO_UPPER=false
到連接URL來解決。
添加回答
舉報
0/150
提交
取消