2013-04-01 161 views
-1

我想在應用程序服務器啓動時創建數據庫模式。
我使用帶註釋和hibernate.cfg.xml的hebernate 4.1.9進行配置。休眠數據庫創建

所以問題是我不能完全理解我應該如何創建模式,然後在應用程序中使用它。當然,我只想在第一次啓動和下一次啓動時執行模式創建,我想更新它。

我想在更新狀態使用hbn2ddl.auto,但數據庫不會創建。可能是我應該在hibernate.connection.url的末尾使用諸如INIT=create schema IF NOT EXISTS myschema之類的東西。

我也有一個例外

org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set 

但在hibernate.cfg.xml有這樣的字符串:

<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> 

可有人形容它給我嗎?

+0

試試看[這個問題](http://stackoverflow.com/questions/12373944/how-to-create-database-schema-with-hibernate-cfg -xml)以及其答案中的鏈接。 –

+0

我之前看到了答案中的鏈接,但它不起作用,因爲我不想正確添加其他創建腳本,並且將INIT塊添加到URL中不會創建該模式。其實我試圖理解爲什麼? – Anatoly

+0

Hibernate文檔僅將** hibernate.connection.url **定義爲JDCB URL。 [MySQL連接器/ J參考](http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-configuration-properties.html)沒有定義** INIT **屬性。 我相信鏈接文章的重點是你必須咬緊牙關,至少自己創建一個空的模式。 –

回答

2

我自己解決了這個問題。我應該添加createDatabase = true hibernate.connection.url

+0

Spiffy。 'createDatabaseIfNotExist = true'是另一種選擇。 –

+0

當我談到INIT財產時,我的意思是我試圖找到類似的東西。所以我在你的鏈接中找到了它。謝謝。 – Anatoly