Точечная запись MongoDB в Grails - PullRequest
2 голосов
/ 06 марта 2012

У меня возникли проблемы при создании запросов с использованием createCriteria () в Grails 1.3.7 при использовании точечной нотации в MongoDB. Я использую плагин mongodb .

Мой класс домена выглядит примерно так:

class Log {
    static mapWith = 'mongo'

    ObjectId id
    String name
    Map logicalIds = [:]
}

Редактировать: , где logicIds - это карта ключа / значения пользовательских данных, которая ранее не была известна.

И запрос создается так:

def c = Log.createCriteria()
c.list {
    eq('name', 'John Doe')
    eq('logicalIds.text', 'some text')
}

Но выдается следующее исключение:

java.lang.IllegalArgumentException: свойство [logicIds.text] не является допустимым свойством класса [...]

Возможно ли это исправить или невозможно использовать createCriteria ?

Ответ: Я не мог понять ответ ниже, поэтому я нашел альтернативное решение. Вместо createCriteria я просто использовал функцию find из gmongo , которая принимает точечные обозначения.

...