2012-11-01 36 views
3

我已經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的內存模式創建它?

+0

爲何使用DB? –

+0

我做幾個不同的環境測試,我不需要事後保留數據,我也不需要的文件堵塞的倉庫,所以HSQLDB似乎是一個好辦法做到這一點。 – knownasilya

+1

我對內存中的HSQLDB和JPA沒有經驗。但我已經成功使用H2數據庫。 –

回答

3

如果缺少什麼是表,你需要用「創造桌」的值設置eclipselink.ddl代屬性,使其具有的EclipseLink爲您創建它們。一個例子是張貼在這裏:http://wiki.eclipse.org/EclipseLink/Examples/JPA/DDL

+0

對於有同樣的問題別人,你可能需要指定「目標數據庫」屬性:'eclipselink.target-database'這是'org.eclipse.persistence.platform.database。 HSQLDB的HSQLPlatform'。 – knownasilya

+0

我們應該使用這個鏈接property.please幫助我。 –