У меня возникли проблемы при создании запросов с использованием 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 , которая принимает точечные обозначения.