在MongoDB中使用createCriteria()时,我在Grails 1.3.7中使用dot notation创建查询时遇到了一些问题。我正在使用mongodb插件。
我的域类与此类似:
class Log {
static mapWith = 'mongo'
ObjectId id
String name
Map logicalIds = [:]
}
编辑,其中 logicalIds 是用户相关数据的键/值的映射,事先未知。
查询的创建方式如下:
def c = Log.createCriteria()
c.list {
eq('name', 'John Doe')
eq('logicalIds.text', 'some text')
}
但抛出以下异常:
java.lang.IllegalArgumentException:Property [logicalIds.text]不是类[...]的有效属性
是否可以修复,或者无法使用 createCriteria ?
答案: 我无法理解下面的答案,所以我提出了另一种解决方案。 我只使用gmongo中的 find 函数代替 createCriteria ,该函数接受点符号。