Derby の内部データベースに接続しようとして、いくつかの単体テストを開発しましたが、次の結果が得られました。
警告: ローカル例外スタック: 例外 [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException 内部例外: java.sql.SQLSyntaxErrorException: テーブル/ビュー 'SEQUENCE'存在しません。エラー コード: 20000 呼び出し: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ? bind => [バインドされた 2 つのパラメーター] クエリ: DataModifyQuery(name="SEQUENCE" sql="UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?") at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java :333) org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:644) で org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5348) の intercept(BaseContainer.java:5360) com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:214) の com.sun .ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88) at $Proxy113.createVehicle(Unknown Source) at com.thevehiclelist.__EJB31_Generated_ VehicleEJB _Intf_ Bean103) org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) で 原因: java.sql.SQLSyntaxErrorException: テーブル/ビュー 'SEQUENCE' が存在しません。org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException (未知のソース) で org.apache.derby.impl.jdbc.Util.generateCsSQLException (未知のソース) で org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException (ソース不明) org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException (ソース不明) org.apache.derby.impl.jdbc.EmbedConnection.handleException (ソース不明) org.apache.derby.impl.jdbc org.apache.derby.impl.jdbc.EmbedPreparedStatement の .ConnectionChild.handleException (不明なソース)。org.apache.derby.impl.jdbc.EmbedPreparedStatement20 の (不明なソース)。org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1474) の ConnectionWrapper40.prepareStatement(ConnectionWrapper40.java:173) org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java: 1423) org.eclipse.persistence.internal.databaseaccess.DatabaseCall.prepareStatement(DatabaseCall.java:697) で org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:585) ... 86 以上の原因by: java.sql.SQLException: テーブル/ビュー 'SEQUENCE' が存在しません。org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(不明なソース) で org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(不明なソース) で ... 108 以上 原因: エラー 42X05: テーブル/ビュー 'SEQUENCE' が存在しません。org.apache.derby.iapi.error.StandardException.newException (不明なソース) で org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor (不明なソース) で org.apache.derby.impl.sql.compile org.apache.derby.impl.sql.compile.FromList.bindTables(不明なソース) の .FromBaseTable.bindNonVTITables(不明なソース) org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(不明なソース) org .apache.derby.impl.sql.compile.DMLStatementNode.bindTables(不明なソース) org.apache.derby.impl.sql.compile.UpdateNode.bindStatement(不明なソース) org.apache.derby.impl.sql.GenericStatement org.apache.derby.impl.sql.GenericStatement.prepare (不明なソース) の org.apache.derby.impl.sql.conn の .prepMinion (不明なソース)。
私のpersistence.xmlは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="carcmsPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/__default</jta-data-source>
<class>se.while_se.Book</class>
<class>se.while_se.Car</class>
<class>com.thevehiclelist.Vehicle</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:derby:MyTestDb;create=true" />
<property name="javax.persistence.jdbc.user" value="" />
<property name="javax.persistence.jdbc.password" value="" />
<!-- <property name="eclipselink.ddl-generation" value="drop-and-create-tables" /> -->
</properties>
</persistence-unit>
</persistence>
そして、私の pom.xml はこれです:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.main.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>3.1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.8.2.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
データベースが内部データベースに作成されていないように見えますか、それとも何か不足していますか?
よろしくお願いします