0

我正在尝试在 Spock 集成规范中的域类上使用 gorm find 方法。

我的代码:

class myDomainClassSpec extends IntegrationSpec{
    ...
    def 'my test'() {
        when: ...
        then:
            MyDomainClass.find { id == 1 }
    }
    ...
}

这失败了,抛出:

groovy.lang.MissingPropertyException: No such property: id for class: grails.gorm.DetachedCriteria

相反,如果我编码: MyDomainClass.findAll().find { id == 1 } 它可以工作。

有任何想法吗??

4

1 回答 1

0

我不确定 Spock 在这里是如何工作的,但看起来你MyDomainClass.find调用的是创建一个DetachedCriteria,我想解决这个问题要么做

MyDomainClass.findById(1)

或者如果您使用更复杂的标准,请尝试

MyDomainClass.where { id == 1 }

或仅使用标准

(MyDomainClass.createCriteria()) { id == 1 }
于 2012-11-19T23:11:55.333 回答