我已經JPA2用的EclipseLink 2.4,我試圖實現使用HSQLDB的內存數據庫。我已經能夠使用生成HSQLDB表中從JPA/EclipseLink的內存(沒有文件)
jdbc:hsqldb:file:./databases/test;shutdown=true;files_readonly=true
創建HSQLDB的文件執行但當我嘗試使用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
從我讀,應該自動地生成的數據模型,但我只看到的例子機智H休眠。有沒有辦法鏈接JPA數據模型並使用HSQLDB的內存模式創建它?
爲何使用DB? –
我做幾個不同的環境測試,我不需要事後保留數據,我也不需要的文件堵塞的倉庫,所以HSQLDB似乎是一個好辦法做到這一點。 – knownasilya
我對內存中的HSQLDB和JPA沒有經驗。但我已經成功使用H2數據庫。 –