DomainClass.where{
user.id == currentUser.id
}.list()
所以,我有一个 DomainClass ,有一个用户;
从技术上讲,应该返回一个List< DomainClass>共享 currentUser (非空)。
因此,例如,我在我的数据库中有两个条目,而另外五个,其他用户。
我的问题是:
为什么,有时候,在服务器重启时,这个简单的地方产生不正确的结果?
结果不正确,我的意思是列表< DomainClass>包含所有DomainClass实例(7,准确地说是前面提到的数字)。
如果我尝试在IntelliJ中对此进行评估,我会得到相同的结果,如果我使用 DomainClass.withCriteria ,它就可以了。但为什么它首先发生呢?
这将是替代查询。
DomainModel.withCriteria {
user {
eq 'id', currentUser.id
}
}
当发生这种情况时,这将评估一个包含2个条目的ArrayList;而另一个有7.确实内部的查询更复杂,但即使是这个简化的版本也是如此。
此外,Grails版本为2.3.6。