Java 如何使用JPA工具和EclipseLink在特定位置生成SQL脚本?
我用EclipseLink 2.7.0建立了一个项目,我正在Eclipse中使用Dali。我试图使用上下文菜单生成SQL脚本,但在将生成的SQL脚本输出到所需位置时遇到问题Java 如何使用JPA工具和EclipseLink在特定位置生成SQL脚本?,java,jpa,eclipselink,dali,Java,Jpa,Eclipselink,Dali,我用EclipseLink 2.7.0建立了一个项目,我正在Eclipse中使用Dali。我试图使用上下文菜单生成SQL脚本,但在将生成的SQL脚本输出到所需位置时遇到问题 persistence.xml文件包含以下内容: <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/> <property name="ecl
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
- 使用等价的
properties,也无济于事javax.persistence.schema generation
有没有我不知道的微妙之处?或者一些额外的配置?也许我完全弄错了,酒店与Dali没有任何关系?这真是一团糟,但以下是您需要的:
- :此选项控制是否生成DDL
- :必须将其设置为
或两者
,否则任何地方都不会向任何文件写入DDLsql脚本
- :设置为包含DDL输出文件的绝对路径
- :这是一个以文件名终止的路径,该文件名相对于
属性值提供的绝对路径如果未指定eclipselink.application location
,则忽略此属性。eclipselink.application location
- :这是一个以文件名终止的路径,该文件名相对于
属性值提供的绝对路径如果未指定eclipselink.application location
,则忽略此属性。eclipselink.application location
应用程序位置
设置为绝对路径,并且指定了ddl生成。输出模式
),Dali仍在项目根目录下生成文件。我已经完全放弃了,因为我已经在我的这个新项目上初始化了数据库。我逐渐了解到,当Dali从实体生成表时,不考虑persistence.xml
中定义的属性。