2012-11-01 1 views
3

EclipseLink 2.4와 JPA2가 있는데, HSQLDB를 사용하여 메모리 내장 데이터베이스를 구현하려고합니다. 나는JPA/EclipseLink (파일 없음)에서 메모리에 HSQLDB 테이블 생성

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

테이블이 누락 된 경우 "create-tables"값을 사용하여 eclipselink.ddl-generation 속성을 설정해야 Eclipselink에서 이러한 테이블을 만들 수 있습니다. 예가 여기에 게시됩니다. http://wiki.eclipse.org/EclipseLink/Examples/JPA/DDL

+0

다른 문제에 대해서는 'target-database'속성을 지정해야한다 :'eclipselink.target-database'는'org.eclipse.persistence.platform.database. HSQLDB 용 HSQLPlatform입니다. – knownasilya

+0

우리는이 링크를 사용해야합니다. property.please 도움. –

관련 문제