Grails GORM表现异常

时间:2018-12-13 14:27:22

标签: grails gorm grails-domain-class

我在Grails GORM查询中遇到以下非常奇怪的行为...

注意:我创建了20个MyDomain实例。即20 records

案例1

 List<MyDomain> case1Results = MyDomain.where {
            (isTypeA == true) && (relation1.relation2.relation3.organization == org)
 }.list()

在这种情况下,case1Results是一个空列表。

案例2

 List<MyDomain> case2Results = MyDomain.where {
                (isTypeA == true)
 }.list()

在这种情况下,case2Results包含我存储的20 records

这一切似乎都可以找到了。这表明20条记录与organization没有关联。但是...

问题:

当我带着case2Results并执行以下操作时...

println(case2Results.every {
    it.relation1.relation2.relation3.organization == org
}) //true

我得到true

或:

case2Results = case2Results.findAll{
    it.relation1.relation2.relation3.organization == org
}

在这里,case2Results仍然包含20 records,如上面的案例2 一样,而不是0,如案例1

我无法解决这种问题,如果不通过这些示例,我什至不知道该如何解释。有谁知道为什么会这样以及如何解决?

PS:我的每个域类都有一个belongsTo和hasMan静态映射,从而在这些域类之间创建关系。

PS::运行单元测试时会遇到这种现象,但是在实际测试的功能中效果很好。

0 个答案:

没有答案