レガシー データベースから derby に JPA (2.0) を使用してクローン データベースを作成しようとしています。JPAエンティティは既存のデータベースから生成されました(JDideaツールによると思います)。現在、Eclipse + GlassFish3 + EclipseLink + Derby + JDK 6を使用して、安全な開発(およびテスト)のためにそのデータベースを複製しています。
しかし、私はグラスフィッシュログにこれらのメッセージを記録しています:
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>
何かアドバイス?