2

現在、grails の GORM MongoDB プラグインを使用して、次のクラスを永続化しようとしています。

class Result {

    String url

    def Result(){

    }


    static constraints = {
    }

    static mapWith="mongo"

    static mapping = {
        collection "results"
        database "crawl"
    }
}

このクラスを永続化するために実行しているコードは次のとおりです。

class ResultIntegrationTests {

    @Before
    void setUp() {

    }

    @After
    void tearDown() {

    }

    @Test
    void testSomething() {
        Result r = new Result();

        r.setUrl("http://heise.de")

        r.getMetaClass().setProperty("title", "This is how it ends!")

        println(r.getTitle())

        r.save(flush:true)
    }
}

これは MongoDB での結果です。

{ "_id" : NumberLong(1), "url" : "http://heise.de", "version" : 0 }#

現在、URL は MongoDB で適切に永続化されていますが、動的プロパティはどういうわけかマッパーには表示されません - println(r.getTitle()) は完全に正常に動作しますが。

私はgroovyに慣れていないので、もう少し経験のある人がこの問題を解決してくれると思いました。この動的に追加されたプロパティをマッピング機能に表示する方法はありますか? はいの場合、どうすればそれを行うことができますか?

アドバイスをどうもありがとう...

4

2 に答える 2

2

metaClass にランダムなプロパティを追加して、Grails がランダムなプロパティを探して metaClass をスキャンして永続化することを期待するのではなく、Map をドメイン クラス (または Result が使用できる新しい Key/Value ドメイン クラス) に追加しないでください。hasMany) そのため、必要に応じてランダムな追加プロパティを追加できます。

于 2012-11-19T09:39:23.480 に答える