Java 是否可以使用EJB升级DB模式?
假设我有一个EJB应用程序,它定义了一些实体以及它们之间的关系。我认为可以很容易地从实体创建DB模式。因此,现在应用程序可以正常工作,但过了一段时间后需要更改一些关系,例如,一对一需要变成一对多,我可以升级我的数据库以做到这一点而不丢失旧数据吗 当然可以!你必须做什么完全取决于许多不同的因素:你使用哪种ORM?哪个EJB容器?哪种关系数据库管理系统 通常采用以下步骤:Java 是否可以使用EJB升级DB模式?,java,ejb,Java,Ejb,假设我有一个EJB应用程序,它定义了一些实体以及它们之间的关系。我认为可以很容易地从实体创建DB模式。因此,现在应用程序可以正常工作,但过了一段时间后需要更改一些关系,例如,一对一需要变成一对多,我可以升级我的数据库以做到这一点而不丢失旧数据吗 当然可以!你必须做什么完全取决于许多不同的因素:你使用哪种ORM?哪个EJB容器?哪种关系数据库管理系统 通常采用以下步骤: 停止应用程序 备份数据库 编辑数据库架构 取消部署应用程序 使应用程序适应您的新模式。别忘了编辑您的ORM配置 重新部署应用程序
要获得更详细(且有用)的答案,您必须向我们提供更多有关当前情况、您想要实现的目标以及您将要改变的细节。当然可以!你必须做什么完全取决于许多不同的因素:你使用哪种ORM?哪个EJB容器?哪种关系数据库管理系统 通常采用以下步骤:
要获得更详细(且有用)的答案,您必须向我们提供更多有关当前情况、您想要实现的目标以及您将要更改的内容的详细信息。如果使用Hibernate作为JPA实现,您可以传递Hibernate.hbm2ddl.auto属性。如果您手动更改模式,您应该考虑将其设置为“验证”。此外,您还可以尝试“更新”,它应该在不进行手动更改的情况下处理简单的内容。如果使用Hibernate作为JPA实现,您可以传递Hibernate.hbm2ddl.auto属性。如果您手动更改模式,您应该考虑将其设置为“验证”。此外,您还可以尝试“更新”,它可以在不进行手动更改的情况下处理简单的内容。这听起来像是让容器从您的实体自动生成模式,这样您就不必亲自创建自己的ORM(为什么不?),如果是这样,Apache项目中有一个漂亮的工具,名为DdlUtils,您可能会发现它很有用 首先备份旧数据库,然后重新部署更新的应用程序,以生成具有新架构的空数据库。使用DdlUtils,您可以连接到这两个数据库,并让它生成将旧数据库迁移到新模式所需的SQL,从而保留数据
如果您只是添加或删除表或列,它就像一个符咒。我不知道当你做一些像更改列名这样的事情时,效果如何。在这种情况下,您可能需要手动编辑sql。听起来您让容器从您的实体自动生成模式,这样您就不必亲自创建自己的ORM(为什么不呢?),如果是这样,Apache项目中有一个名为DdlUtils的漂亮工具,您可能会发现它很有用 首先备份旧数据库,然后重新部署更新的应用程序,以生成具有新架构的空数据库。使用DdlUtils,您可以连接到这两个数据库,并让它生成将旧数据库迁移到新模式所需的SQL,从而保留数据 如果您只是添加或删除表或列,它就像一个符咒。我不知道当你做一些像更改列名这样的事情时,效果如何。在这种情况下,您可能需要手动编辑sql