0

我正在尝试将使用 JPA (2.0) 的克隆数据库从旧数据库创建到 derby 中。JPA 实体是从现有数据库(我认为是 JDidea 工具)生成的,现在我使用 Eclipse + GlassFish3 + EclipseLink + Derby + JDK 6 来克隆该数据库以进行安全开发(和测试)。

但是我进入 glassfish 记录这些消息:

INFO: EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461
INFO: file:/C:/siilo/glassfish3/glassfish/domains/domain1/eclipseApps/omaasiointi-web/WEB-INF/classes/PU_NAME login successful
WARNING: Multiple [2] JMX MBeanServer instances exist, we will use the server at index [0] : [com.sun.enterprise.v3.admin.DynamicInterceptor@22beebcd].
WARNING: JMX MBeanServer in use: [com.sun.enterprise.v3.admin.DynamicInterceptor@22beebcd] from index [0] 
WARNING: JMX MBeanServer in use: [com.sun.jmx.mbeanserver.JmxMBeanServer@62ccf439] from index [1] 

WARNING: PER01000: Got SQLException executing statement "CREATE TABLE "postikoodi" ("lrivino" BIGINT NOT NULL, "szkielikoodi" VARCHAR(255), "szkuntakoodi" VARCHAR(255), "szpostinumero" VARCHAR(255), "szpostitoimipaikka" VARCHAR(255), "sztimestamp" VARCHAR(255), "szuserid" VARCHAR(255), PRIMARY KEY ("lrivino"))": java.sql.SQLException: Table/View 'postikoodi' already exists in Schema 'APP'.
...

并且有很多这样的信息。使用了多个相同的数据库,并且 EclipseLink 可能会尝试在所有数据库中创建所有表(出于什么原因,我想我会收到大量这些错误 => 它们似乎大致相同)。

我在 Eclipse 中创建了几个数据库连接,并检查了这些数据库中的“APP”模式是否为空,所以我不太明白这个错误。

在 persistence.xml 我定义了以下内容:

<persistence-unit name="PU_NAME" transaction-type="JTA">
    <jta-data-source>jdbc/__default</jta-data-source>
    <properties>
        <property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.DerbyPlatform"/>
        <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
        <property name="eclipselink.ddl-generation.output-mode" value="database"/>
    </properties>
</persistence-unit>

有什么建议吗?

4

0 回答 0