我有一个用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
属性,也无济于事。
有什么我不知道的微妙之处吗?或者其他配置?也许我完全搞错了,物业与大理无关?
1条答案
按热度按时间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
.