java—如何使用jpa工具和eclipselink在特定位置生成sql脚本?

dxpyg8gm  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(488)

我有一个用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脚本,我右键单击项目,选择jpa工具>从实体生成表…然后在打开的模式生成对话框中选择sql脚本。根据这个文档,我希望脚本可以在 src/main/resources/sql/postgresql/ 使用我指定的名称,但文件在项目根目录下的名称下不断创建 dropDDL.sql 以及 createDDL.sql . 就像我在书中说的那样 persistence.xml 被忽略。我开始怀疑它的内容是否被使用过。
我试过:
定义 eclipselink.ddl-generation 所有三个允许值( create-tables …),毫无效果。
使用等效的 javax.persistence.schema-generation 属性,也无济于事。
有什么我不知道的微妙之处吗?或者其他配置?也许我完全搞错了,物业与大理无关?

jhdbpxl9

jhdbpxl91#

这真是一团糟,但你需要的是: eclipselink.ddl-generation :控制是否生成ddl。 eclipselink.ddl-generation.output-mode :必须设置为 both 或者 sql-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 .

相关问题