2

Grails 2.2.0 と MongoDB を使用しています。デフォルトの H2 in memory データベースではなく、MongoDB に対して実行するように Grails を構成しました。エラーメッセージから、削除したと思いますが、h2が関与しているようです。

私のDataSource.groovy:

grails { 
    mongo { 
        host = "localhost" 
        port = 27017 
        databaseName = "physicians" 
    } 
} 

私の BuildConfig.groovy:

plugins { 
   runtime ":hibernate:$grailsVersion" 
   runtime ":jquery:1.8.0" 
   runtime ":resources:1.1.6" 

   // Uncomment these (or add new ones) to enable additional resources capabilities 
   //runtime ":zipped-resources:1.0" 
   //runtime ":cached-resources:1.0" 
   //runtime ":yui-minify-resources:0.1.4" 

   build ":tomcat:$grailsVersion" 

   runtime ":database-migration:1.1" 

   compile ':cache:1.0.0' 
   compile ':mongodb:1.1.0.GA' 
} 

ドメイン オブジェクト Artist を保存するときに発生するエラーは次のとおりです。

| Error 2013-01-03 22:33:18,881 [http-bio-9090-exec-1] ERROR util.JDBCExceptionReporter  - Table "ARTIST" not found; SQL statement: 
insert into artist (id, version, artist_name, birth_name) values (null, ?, ?, ?) [42102-164] 
| Error 2013-01-03 22:33:19,050 [http-bio-9090-exec-1] ERROR errors.GrailsExceptionResolver  - JdbcSQLException occurred when processing request: [GET] /musicstack/artist/ 
Table "ARTIST" not found; SQL statement: 
insert into artist (id, version, artist_name, birth_name) values (null, ?, ?, ?) [42102-164]. Stacktrace follows: 
Message: Table "ARTIST" not found; SQL statement: 
insert into artist (id, version, artist_name, birth_name) values (null, ?, ?, ?) [42102-164] 
    Line | Method 
->>  329 | getJdbcSQLException in org.h2.message.DbException 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    169 | get                 in     '' 
|    146 | get . . . . . . . . in     '' 
|   4753 | readTableOrView     in org.h2.command.Parser 
|   4731 | readTableOrView . . in     '' 
|    954 | parseInsert         in     '' 
|    375 | parsePrepared . . . in     '' 
|    279 | parse               in     '' 
|    251 | parse . . . . . . . in     '' 
|    217 | prepareCommand      in     '' 
|    415 | prepareLocal . . .  in org.h2.engine.Session 
|    364 | prepareCommand      in     '' 
|   1121 | prepareCommand . .  in org.h2.jdbc.JdbcConnection 
|     71 | <init>              in org.h2.jdbc.JdbcPreparedStatement 
|    267 | prepareStatement .  in org.h2.jdbc.JdbcConnection 
|   1051 | prepareStatement    in     '' 
|    508 | prepareStatement .  in org.apache.commons.dbcp.DelegatingConnection 
|    400 | prepareStatement    in org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper 
|      7 | index . . . . . . . in musicstack.ArtistController 
|    195 | doFilter            in grails.plugin.cache.web.filter.PageFragmentCachingFilter 
|     63 | doFilter . . . . .  in grails.plugin.cache.web.filter.AbstractFilter 
|    886 | runTask             in java.util.concurrent.ThreadPoolExecutor$Worker 
|    908 | run . . . . . . . . in     '' 
^    680 | run                 in java.lang.Thread 

ここで何が欠けていますか?

よろしく/Lasse

====================================

動作しました。

まず、行を削除する必要がありました

runtime ":hibernate:$grailsVersion" 

BuildConfig.groovy から

私がそれをしたとき、私はこれを得ました:

| Error Fatal error during compilation org.apache.tools.ant.BuildException: 
java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
(NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)

次に、行を削除しました

runtime ":database-migration:1.1" 

BuildConfig.groovy から

この問題を解決するために検索したときに、この最後の部分は見つかりませんでした。これはそれが行われるべき方法ですか?

/ラッセ

4

3 に答える 3

2

プロジェクトで mongodb gorm をスタンドアロンで使用するには、コメントアウトする必要があります

compile ':cache:1.0.0' 

キャッシュ プラグインは休止状態に依存するため、BuildConfig で。ソースコードで次のように見つけることができます。

    plugins {
        ....
        runtime(":hibernate:$grailsVersion") {
            export = false
        }
            ....
    }
于 2013-01-11T01:49:21.267 に答える
1

Hibernate プラグインを動作させるには、application.properties からも削除する必要がありました。application.properties で hibernate プラグインが構成された理由がわかりません

于 2013-02-07T20:13:14.347 に答える
0

休止状態をアンインストールしたので、mongodb に関する別のプラグインが必要です。あなたは行を追加することができます

compile ':mongodb:1.0.0.GA'

代わりに BuildConfig.groovy から

runtime ":hibernate:$grailsVersion"
于 2013-01-04T09:00:22.617 に答える