我想建立一個項目與休眠,彈簧mvc和H2作爲(現在)在內存數據庫。 當一切都啓動(在碼頭)時,我收到錯誤表示表格尚未出現。H2內部數據庫與休眠設置創建給我表沒有發現錯誤
這是錯誤我得到:
Okt 09, 2013 3:42:47 PM org.hibernate.tool.hbm2ddl.SchemaExport execute
INFO: HHH000227: Running hbm2ddl schema export
Okt 09, 2013 3:42:47 PM org.hibernate.tool.hbm2ddl.SchemaExport perform
ERROR: HHH000389: Unsuccessful: alter table PUBLIC.Object drop constraint FK_9sd2x4ehbugdjyrp1xqmsjw00
Okt 09, 2013 3:42:47 PM org.hibernate.tool.hbm2ddl.SchemaExport perform
ERROR: Tabelle "OBJECT" nicht gefunden
Table "OBJECT" not found; SQL statement:
...
,如果我沒有設置休眠如這這將是確定:
hibernate.hbm2ddl.auto=create
和H2連接字符串是這樣的:
jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=TRUE
我可以使用IntelliJ連接到數據庫,所以它在那裏..
我希望Hibernate能夠爲我生成表格,然後是約束條件和其他任何遵循的內容,但由於某些原因,它不會那樣做。它可能是一個用戶權利的事情?這些是我設置的用戶設置:
jdbc.user=sa
jdbc.pass=
任何幫助表示讚賞! 謝謝:)
UPDATE
如果我的連接字符串改成這樣:
jdbc.url=jdbc:h2:~/db/database.db;DB_CLOSE_ON_EXIT=TRUE;INIT=create schema IF NOT EXISTS generic;
它似乎工作。但是爲什麼它在內存中不起作用,爲什麼當我將默認模式設置爲「公共」時(它已經存在,所以我想不妨將我的東西轉儲到那裏......)IDK!
爲什麼休眠下降外鍵在空數據庫上?嘗試啓用SQL日誌記錄來查看Hibernate如何嘗試檢查現有的數據庫模式。 –
它甚至沒有嘗試首先創建表格,或者檢查是否存在表格,直接嘗試刪除鍵。地獄我不知道它爲什麼這樣做。我仍然在數據庫上的「第一次」運行中遇到同樣的錯誤,但在此之後,表格就在那裏,並且與它們一起工作......非常奇怪 – pascalwhoop
錯誤表明您沒有使用您認爲的數據庫。再次檢查配置,設置斷點並對其進行調試。 –