2

Grails GORM Mongo ドメイン クラスに埋め込みコレクションを作成しようとしています。

class User {
    String name
    Set<String> friends = []
}

他のユーザー名のセット (重複していないリスト)を保存したいと考えています。

User ドメイン クラスを保存しようとすると、次のようになります。

new User(name: 'Bob').save(failOnError: true)

エラーが発生します。

org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for interface java.util.Set.

セットをリストに変更してもうまくいきますが、重複はしたくなく、リストでそれを管理する必要はありません。

GORM が基礎となる Mongo$addToSet機能を使用する方法はありますか。

4

1 に答える 1

0

GORM MongoDB の問題である可能性があります。問題を再現して、ここで問題を作成できます。

Listしかし今のところ、次のように使用してこの問題を回避できます。

class User {

    String name
    List<String> friends = []

    void removeDuplicate() {
        this.friends?.unique()
    }


    def beforeInsert() {
         removeDuplicate()
    }

    def beforeUpdate() {
         removeDuplicate()
    }
}
于 2016-03-07T04:27:19.377 に答える