2017-06-08 12 views
0

ステップ1を失敗休止状態:使用するコマンドは、アプリのGrails 3.3.0 M1および3.3.0 M2はMongoDBのを組み合わせると

grails create-app test 

ステップ2作成:ドメイン

grails create-domain-class test 

を作成するステップ3:configue build.gradle

compile 'org.grails.plugins:mongodb' 

手順4:設定application.yml

grails: 
    mongodb: 
     host: "localhost" 
     port: 27017 
     username: "" 
     password: "" 
     databaseName: "test" 
environments: 
development: 
    dataSource: 
     dbCreate: none 
     url:jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE 
     logSql: true 

ステップ5:Test.groovyでmapWithを使用

static mapWith="mongo" 

ステップ6:ブートストラップでのクエリテスト

println Test.findAll() 

Stop7:実行Grailsのアプリ

grails run-app 

にエラーがある:

org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: could not prepare statement; bad SQL grammar [select this_.id as id1_0_0_, this_.version as version2_0_0_ from test this_]; nested exception is org.h2.jdbc.JdbcSQLException: Table "TEST" not found; SQL statement: 
select this_.id as id1_0_0_, this_.version as version2_0_0_ from test this_ [42102-194] 
     at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231) 
     at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) 
     at org.grails.orm.hibernate.GrailsHibernateTemplate.convertJdbcAccessException(GrailsHibernateTemplate.java:723) 
     at org.grails.orm.hibernate.GrailsHibernateTemplate.convertHibernateAccessException(GrailsHibernateTemplate.java:711) 
     at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:302) 
     at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:242) 
     at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:116) 
     at org.grails.orm.hibernate.HibernateGormStaticApi.list(HibernateGormStaticApi.groovy:74) 
     at org.grails.datastore.gorm.GormStaticApi.findAll(GormStaticApi.groovy:579) 
     at org.grails.datastore.gorm.GormEntity$Trait$Helper.findAll(GormEntity.groovy:671) 
     at org.grails.datastore.gorm.GormEntity$Trait$Helper$findAll$0.call(Unknown Source) 

使用その他のバージョン:

  • 3.2.3
  • 3.2.5が
  • 3.2.9がOKでOKですOKです

私のコードは次のとおりです。 the demo in github

3.3.0.M1と3.3.0.M2の変更点は?

+0

にあなたのこれらの行を交換し、あなたがそれを見ることができるあなたの完全な 'application.yml'コード –

+0

を表示:[application.yml](https://github.com/halfray/ 3.3.0前TestGrailsWithMongo /ブロブ/マスター/ Grailsのアプリ/ confに/ application.yml) – halfray

+0

は、ドメインクラスのDefaultGrailsDomainClassを作成するとき、mappingStrategyはmapWithフィールドを使用しますが、今ではそれがバグである、ということないですか? – halfray

答えて

0
grails: 
    mongodb: 
     host: "localhost" 
     port: 27017 
     username: "" 
     password: "" 
     databaseName: "test" 

environments: 
    development: 
     dataSource: 
      dbCreate: none 
      url: jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE 
      logSql: true 
    test: 
     dataSource: 
      dbCreate: update 
      url: jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE 
    production: 
     dataSource: 
      dbCreate: none 
      url: jdbc:h2:./prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE 
      properties: 
       jmxEnabled: true 
       initialSize: 5 
       maxActive: 50 
       minIdle: 5 
       maxIdle: 25 
       maxWait: 10000 
       maxAge: 600000 
       timeBetweenEvictionRunsMillis: 5000 
       minEvictableIdleTimeMillis: 60000 
       validationQuery: SELECT 1 
       validationQueryTimeout: 3 
       validationInterval: 15000 
       testOnBorrow: true 
       testWhileIdle: true 
       testOnReturn: false 
       jdbcInterceptors: ConnectionState 
       defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED 

この

environments: 
    development: 
     grails: 
      mongodb: 
       host: "localhost" 
       port: 27017 
       username: "" 
       password: "" 
       databaseName: "test" 
    test: 
     mongodb: 
       host: "localhost" 
       port: 27017 
       username: "" 
       password: "" 
       databaseName: "test" 
    production: 
     grails: 
      mongodb: 
       host: "localhost" 
       port: 27017 
       username: "" 
       password: "" 
       databaseName: "test" 
      properties: 
       jmxEnabled: true 
       initialSize: 5 
       maxActive: 50 
       minIdle: 5 
       maxIdle: 25 
       maxWait: 10000 
       maxAge: 600000 
       timeBetweenEvictionRunsMillis: 5000 
       minEvictableIdleTimeMillis: 60000 
       validationQuery: SELECT 1 
       validationQueryTimeout: 3 
       validationInterval: 15000 
       testOnBorrow: true 
       testWhileIdle: true 
       testOnReturn: false 
       jdbcInterceptors: ConnectionState 
       defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED 
+0

のための問題を作成しただけで「コンパイル '削除org.grailsが必要.plugins:hibernate5 "' build.gradleから、私のプロジェクトでは、私はMongoDBとHibernateの組み合わせが必要です – halfray

関連する問題