30

アカウント ドメインのタグのリストを取得するために、プロジェクションを含む基準を使用しています。このような:

def tags = Account.createCriteria().list { 
    projections { property("tags") } 
}

マイ アカウント ドメイン:

class Account {
    static mapWith = "mongo"
    List<Tag> tags
    ...
    static embedded = ['tags']
}

BuildConfig.groovy

// using grails 2.3.8
plugins {
    runtime ":hibernate:3.6.10.17"
    compile ":mongodb:2.0.1"

これは、grails 用の MongoDB GORM プラグインを 2.0.1 から 3.0.1 にアップグレードするまで機能していました。

    compile ":mongodb:3.0.1"

今、私は次のエラーが表示されます...

The class [java.util.List] is not a known persistent type.
    at org.grails.datastore.mapping.core.AbstractSession.retrieveAll(AbstractSession.java:723)
    at org.grails.datastore.mapping.mongo.query.MongoQuery$AggregatedResultList.initializeFully(MongoQuery.java:1601)
    at org.grails.datastore.mapping.mongo.query.MongoQuery$AggregatedResultList.size(MongoQuery.java:1764)

なぜこれは以前は機能していたのに、現在は失敗しているのでしょうか? mongoDB の集計フレームワークを使用するために既存のすべてのクエリを書き直したくありません。

4

2 に答える 2

0

普通に試せます

grails clean
grails refresh-dependencies

プラグインの新しいバージョンも確認してください。

別の代替手段は、1 か月前に公開されたこの mongo プラグインに切り替えることです。これは、Hibernate の GORM と互換性があるはずです。

'org.grails.plugins:mongodb:6.0.0.M2'
于 2016-08-24T15:07:31.140 に答える
-1

プラグインマネージャーから休止状態を削除することで、競合を回避できます

于 2015-06-08T14:27:46.850 に答える