我是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中是否有任何支持来支持在不删除其余数据的情况下创建列。
第二个-在DB2上,对CLOB或LOB字段的处理方式与对MySQL的处理方式不同。尽管在我部署应用程序时它为DB2数据库生成了必要的SQL脚本,但看起来还不够(DB2不仅需要CLOB列的字段声明-似乎ROWID,表空间和其他一些东西还需要)。 JPA支持吗?如果没有,我可以通过JPA部署后提供其他操作来运行脚本吗?
任何上述帮助都很棒。
答案 0 :(得分:0)
如果将字段添加到模型中,则创建表将不起作用,因为该表已经存在。在对模型进行附加更改时,必须使用drop-and-create-tables或create-or-extend表。有关不同的EclipseLink ddl选项,请参见here。虽然DDL在生产中通常不被接受-您将要创建自己的脚本,以用于JPA模型之外的数据库用例来自定义DDL。