Граальс ГОРМ: заводные карты - PullRequest
2 голосов
/ 02 февраля 2012

Имея следующий класс домена:

class Word {
    Map translations
    static hasMany = [translations: String]

    String toString(){
        id
    }
}

И некоторые экземпляры, сохраненные в начальной загрузке Grails:

def word1 = new Word(translations: [en:"game"]);
word1.save(failOnError: true, flush: true)

def word3 = new Word(translations: [en:"gate"]);
word3.save(failOnError: true, flush: true)

def word2 = new Word(translations: [en:"life"]);
word2.save(failOnError: true, flush: true)

Невозможно правильно получить поле translations. Например:

//input
println Word.findAll().each {
    println it.translations
}
//output
[:]
[:]
[:]
[1, 2, 3]

Что не так?

Ответы [ 2 ]

0 голосов
/ 27 марта 2015

В документе написано:

Если вам нужна простая карта пар строка / значение, GORM может сопоставить это со следующим:

class Author {
    Map books // map of ISBN:book names
}
def a = new Author()
a.books = ["1590597583":"Grails Book"]
a.save()
0 голосов
/ 03 февраля 2012

должно быть

static hasMany = [translations: Map]

вместо

static hasMany = [translations: String]
...