通过eclipseLink生成sql的问题 - 缺少分隔符

Luc*_*aka 10 java sql jpa persistence.xml eclipselink

我使用eclipseLink和jpa.在我的persistence.xml中,我定义为生成一个create.sql文件.将生成该文件,但缺少';' - 每个sql语句的分隔符.

是否有可能在persistence.xml中或以其他方式定义分隔符?

示例persistence.xml:

<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

<exclude-unlisted-classes>false</exclude-unlisted-classes>

<class>de.company.project.models.User</class>

<properties>
      <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
      <property name="eclipselink.application-location" value="/sql" />
      <property name="eclipselink.create-ddl-jdbc-file-name" value="create.sql"/>
      <property name="eclipselink.drop-ddl-jdbc-file-name" value="drop.sql"/>
      <property name="eclipselink.ddl-generation.output-mode" value="sql-script"/>
</properties>
Run Code Online (Sandbox Code Playgroud)

示例生成的sql文件:

CREATE TABLE app_user (
ID INTEGER NOT NULL, 
last_name VARCHAR(50) NOT NULL,         
username    VARCHAR(15) NOT NULL, 
user_password VARCHAR(50) NOT NULL, 
first_name  VARCHAR(50) NOT NULL, 
PRIMARY KEY (ID))

CREATE TABLE SEQUENCE (
 SEQ_NAME VARCHAR(50) NOT NULL,
 SEQ_COUNT DECIMAL(38), 
 PRIMARY  KEY (SEQ_NAME))

INSERT INTO SEQUENCE(SEQ_NAME, SEQ_COUNT) 
values ('SEQ_GEN_TABLE', 0)
Run Code Online (Sandbox Code Playgroud)

juv*_*lux 5

我遇到了这个问题,并通过在persistence.xml中设置属性来解决它.

从Eclipselink 2.6开始,有一个属性"eclipselink.ddlgen-terminate-statements",当设置为true时,分隔符将附加到每个语句.

我想我当时正在使用H2数据库.

有关更多详细信息,请参阅http://www.eclipse.org/eclipselink/api/2.6/org/eclipse/persistence/config/PersistenceUnitProperties.html


fre*_*ley 0

如果是一次性的,请将每个“\n\n”替换为“;\n\n”。但不建议将此作为永久解决方案......