2012-02-22 108 views
1

這只是一個簡單的問題 - 如何讓我的數據庫(我正在使用Derby)在實體中提交更改(我的意思是更改列名稱,約束等)?因爲我發現當我在實體屬性中更改某些內容時,我的數據庫仍然保持不變。如果有任何功能,我也使用Netbeans。使用JPA重新創建表結構

我現在知道hibernate.hbm2ddl.auto的,但是我正在尋找類似的東西(例如,我不希望在從實體結構的變化到DB下降日期)

回答

4

你沒有指定持久性提供者,但我會假設休眠;您可以使用hibernate.hbm2ddl.auto配置參數來通知hibernate重新創建表。請參閱this SO question for more details。請注意,不應該在生產中使用; see this SO question for those details

+0

不,我正在使用EclipseLink。在使用Google進行搜索之後,我發現我應該將eclipselink.ddl-generation設置爲drop-and-create-tables,但是我也會丟失數據,那麼還有其他方法嗎? – 2012-02-22 21:27:35

+0

我還沒有用過EclipseLink;在休眠狀態下,您可以將'hibernate.hbm2ddl.auto'設置爲'update',如第二個鏈接所述,但我從來沒有嘗試過。這並不安全;如果您爲了測試/開發目的需要它,您可以嘗試使用DBUnit; [本博文中有教程](http://www.antoniogoncalves.org/xwiki/bin/view/Article/TestingJPA#HAddingDbUnit)。 – beerbajay 2012-02-22 21:37:18