JPA/Eclipselink中的支持表结构变化

JPA/Eclipselink中的支持表结构变化,jpa,db2,eclipselink,clob,database-table,Jpa,Db2,Eclipselink,Clob,Database Table,我是JPA/Eclipselink的新手,面临一个分为两部分的问题- 首先,我需要在现有表中添加CLOB字段。我对持久性类进行了必要的更改,它使用MySQL作为数据库,而不更改以下属性: <property name="eclipselink.ddl-generation" value="create-tables"/> 但是,在DB2数据库上,它不能以这种方式工作,必须将其更改为: <property name="eclipselink.ddl-generation"

我是JPA/Eclipselink的新手,面临一个分为两部分的问题- 首先,我需要在现有表中添加CLOB字段。我对持久性类进行了必要的更改,它使用MySQL作为数据库,而不更改以下属性:

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

但是,在DB2数据库上,它不能以这种方式工作,必须将其更改为:

<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>

我意识到这在运行DB2的生产环境中是行不通的,我不确定JPA/Eclipselink中是否有支持创建列而不删除其余数据的支持

第二,CLOB或LOB字段在DB2上的处理方式与在MySQL上的不同。尽管在我部署应用程序时,它为DB2数据库生成了必要的SQL脚本,但这似乎还不够(DB2需要的不仅仅是CLOB列的字段声明——似乎还需要ROWID、表空间和其他一些东西)。 JPA支持这一点吗?如果没有,我可以通过JPA post部署为运行脚本提供额外的操作吗


任何有关上述内容的帮助都将非常棒。

如果您向模型中添加了一个字段,则创建表将不起作用,因为该表已经存在。对模型进行附加更改时,必须删除并创建表或创建或扩展表。有关不同的EclipseLink ddl选项,请参阅。尽管DDL在生产中通常是不受欢迎的,但您需要创建自己的脚本,以便在与JPA模型不同的DB用例中对其进行自定义。

谢谢Chris。第一个问题已经回答了,正如您所建议的,创建或扩展表是一种方法。第二部分我仍在苦苦挣扎,不确定JPA是否能在DB2中为CLOB或BLOB工作。