1

这不是一个真正的问题,但在我的开发过程中它有时是一件烦人的事情。假设我有一些实体(数据库是根据这些实体创建的,不是其他的),我决定添加一列,删除一列或其他东西,现在我需要将这些更改提交到我的数据库。

最好的方法是什么?我有时必须重新启动 Glassfish;有时部署它就足够了;有时我需要手动删除表,因为重新启动无济于事。我的策略persistence.xml设置为,Create但其他选项并没有真正帮助我。

是否有任何标准方法可以将更改从实体提交到数据库?

4

1 回答 1

1

据我所知,JPA 中没有标准方法可以在开发过程中自动更改表并仍将数据保留在表中。在某些情况下,切换到 CREATE-DROP 可以解决问题 - 但随后您将丢失表中的数据,并且很快需要编写脚本来填充所述表。正如您所说,这对您来说不是什么大问题,从 CREATE-DROP 转到适用于多人项目的方法可能是一个好习惯。我/我们的方法是在 repo 中有一个 sql 脚本文件,当我更改我的实体时,我(手动)更改该脚本或添加一个新脚本(后者如果表已经在生产中或表中的数据是多于几行插入或通过使用创建且不易重现)。通过这种方式,我们可以处理不断合并和可运行的代码。

于 2012-04-28T17:23:06.873 回答