JPA プロバイダーとして Eclipselink を使用し、組み込み Apache Derby データベースを使用しています。プロジェクトを実行すると、次のような例外が発生します。
内部例外: java.sql.SQLSyntaxErrorException: 構文エラー: 行 1、列 31 で「NOT」が発生しました。
エラーコード: -1
呼び出し: CREATE TABLE ITEM (ID VARCHAR NOT NULL, CODE VARCHAR, EXCLUSIVETAX NUMBER(10,5), NAME VARCHAR, UNITPRICE NUMBER(10,5), PRIMARY KEY (ID))
クエリ: DataModifyQuery(sql="CREATE TABLE ITEM (ID VARCHAR NOT NULL, CODE VARCHAR, EXCLUSIVETAX NUMBER(10,5), NAME VARCHAR, UNITPRICE NUMBER(10,5), PRIMARY KEY (ID))")
[EL 警告]: 2013-03-06 18:04:41.827--ServerSession(1650627452)--例外 [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions .DatabaseException
内部例外: java.sql.SQLSyntaxErrorException: 構文エラー: 行 1、列 71 で "(" が発生しました。
エラーコード: -1
呼び出し: CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT NUMBER(19), PRIMARY KEY (SEQ_NAME))
クエリ: DataModifyQuery(sql="CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT NUMBER(19), PRIMARY KEY (SEQ_NAME))")
[EL 情報]: 2013-03-06 18:04:41.856--ServerSession(1650627452)--トランザクション外で読み取りクエリを実行しようとしたときに通信障害が検出されました。クエリを再試行しています。エラー: 例外 [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
persistence.xml は次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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">
<persistence-unit name="StockKeeperPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.mycompany.entities.stock.Item</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:derby:sampledb;create=true"/>
<property name="javax.persistence.jdbc.password" value="app"/>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
<property name="javax.persistence.jdbc.user" value="app"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
ここで何が問題なのですか?NOT
その声明では許可されていませんか?許可されていない場合、クエリがそのように構成されているのはなぜですか?