3

EclipseLink 2.4を備えたJPA2を使用しており、HSQLDBを使用してインメモリデータベースを実装しようとしています。私はhsqldbのファイル実装を使用して作成することができました

jdbc:hsqldb:file:./databases/test;shutdown=true;files_readonly=true

しかし、を使おうとするとjdbc:hsqldb:mem:tableName、次のメッセージが表示されます。


スタックトレース:

javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse   
Persistence Services - 2.4.0.v20120608-r11652):  
  org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: user lacks privilege or object
  not found: EFFECTIVITY

Error Code: -5501
Call: INSERT INTO EFFECTIVITY (HULL) VALUES (?)
bind => [1 parameter bound]
Query: InsertObjectQuery(101)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush
       (EntityManagerImpl.java:804)
at com.gdeb.touchtable.db.TestJPAEntities.testTTTouch(TestJPAEntities.java:93)
..............
Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found:
 EFFECTIVITY
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.SchemaManager.getTable(Unknown Source)
at org.hsqldb.ParserDQL.readTableName(Unknown Source)
at org.hsqldb.ParserDQL.readRangeVariableForDataChange(Unknown Source)
at org.hsqldb.ParserDML.compileInsertStatement(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatement(Unknown Source)
at org.hsqldb.Session.compileStatement(Unknown Source)
at org.hsqldb.StatementManager.compile(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 63 more

私が読んだことから、データモデルは自動的に生成されるはずですが、Hibernateを使用した例しか見ていません。JPAデータモデルをリンクし、HSQLDBのメモリモードを使用して作成する方法はありますか?

4

1 に答える 1

3

不足しているのがテーブルである場合は、Eclipselinkにテーブルを作成させるために、「create-tables」の値を使用してeclipselink.ddl-generationプロパティを設定する必要があります。例はここに投稿されています:http ://wiki.eclipse.org/EclipseLink/Examples/JPA/DDL

于 2012-11-02T12:57:00.570 に答える