【问题标题】:Alter database design with JPA使用 JPA 更改数据库设计
【发布时间】:2013-05-02 17:36:41
【问题描述】:

我正在使用 JPA 开发数据库,​​并且我对更改数据库设计感到好奇。假设我有一个表,我想在该表中添加/删除一列。

我尝试过重新部署技术,但它对我不起作用。我正在使用 JPA 2.0

所以,只是想知道有没有标准的方法来改变数据库表或手动添加/删除表的设计?也可以更改表的主键吗?

我们将不胜感激。

谢谢:)

【问题讨论】:

    标签: database jpa ejb-3.0 managed-bean


    【解决方案1】:

    对于非生产数据库,您可以使用 persistence.xml 属性来创建、删除创建或仅更新现有的数据库架构(例如 Hibernate):

    <persistence ...>
      <persistence-unit ...>
        <property name="hibernate.hbm2ddl.auto" value="create-drop" />
    

    对于 EclipseLink,属性名称不同,可用选项也不同:

    <property name="eclipselink.ddl-generation" value="create-tables"/>
    <property name="eclipselink.ddl-generation.output-mode" value="database"/>
    

    但是对于生产数据库,我会坚持手动更改,因为您必须非常小心细节和时间。

    【讨论】:

    • 我正在使用 eclipse,我已经将这个属性设置如下:
    • 我需要把它改成'create-tables'吗?
    • 不,当您的应用程序部署时,它会删除表,然后重新创建它们。使用 create-tables 只会创建表,因此如果表已经存在则不起作用。如果您不想删除它们,您可以使用 create-or-extend-tables,但它可以处理的更改仅限于添加新字段,而不是删除或更改现有列
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2015-05-08
    • 1970-01-01
    • 2018-04-23
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多