2012-02-22 66 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