如何使用JPATools和EclipseLink在特定位置生成SQL脚本



我用EclipseLink 2.7.0设置了一个项目,我在Eclipse中使用Dali。我正试图使用上下文菜单来生成SQL脚本,但在将生成的SQL脚本输出到我想要的位置时遇到了问题。

persistence.xml文件包含以下内容:

<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
<property name="eclipselink.application-location" value="src/main/resources/sql/postgresql/"/>
<property name="eclipselink.create-ddl-jdbc-file-name" value="051-createDDL.sql"/>
<property name="eclipselink.drop-ddl-jdbc-file-name" value="050-dropDDL.sql"/>

要生成SQL脚本,我右键单击该项目,然后选择JPATools>从实体生成表…然后在打开的架构生成对话框中选择Sql脚本。根据本文档,我希望脚本以我指定的名称在src/main/resources/sql/postgresql/下可用,但文件一直在项目的根目录下创建,名称分别为dropDDL.sqlcreateDDL.sql。就好像我在persistence.xml中指定的内容被忽略了一样。我开始怀疑它的内容是否被使用了。

我试过:

  • eclipselink.ddl-generation定义为所有三个允许的值(create-tables…(,但无效
  • 使用等效的javax.persistence.schema-generation属性也无济于事

是否有我不知道的微妙之处?或者一些额外的配置?也许我完全错了,这些房产与达利无关?

这完全是一团糟,但这里是您需要的:

  • eclipselink.ddl-generation:这控制是否生成DDL
  • eclipselink.ddl-generation.output-mode:必须将其设置为bothsql-script,否则任何位置的任何文件都不会写入DDL
  • eclipselink.application-location:这被设置为将包含DDL输出文件的绝对路径
  • eclipselink.create-ddl-jdbc-filename:这是一个以文件名结尾的路径,该文件名相对于eclipselink.application-location属性值提供的绝对路径如果未指定eclipselink.application-location,则会忽略此属性
  • eclipselink.drop-ddl-jdbc-filename:这是一个以文件名结尾的路径,该文件名相对于eclipselink.application-location属性值提供的绝对路径如果未指定eclipselink.application-location,则会忽略此属性

在您的示例中,您缺少eclipselink.ddl-generation.output-mode

相关内容

  • 没有找到相关文章

最新更新