我是新来的Grails并收到以下错误:当我运行test-app
No signature of method: Something.findAll() is applicable for argument types: (java.lang.String, java.util.ArrayList) values: [from Something AS s WHERE s.some_number LIKE ?, [%asdf%]]"
的Grails:方法的findAll()是适用于参数类型的无签名:字符串,ArrayList的
出现的错误。它发生在以下地方:
SomethingVO[] findBySomeNumber(String searchString) {
searchString = "%"+searchString+"%"
return Something.findAll("from Something AS s WHERE s.some_number LIKE ?",[searchString]).collect {
new SomethingVO(it);
}
}
类Something
是一个域对象:
package some.project.domain
class Something{
static belongsTo = [product:Product, productVersion:ProductVersion]
Long id
String name
String someNumber
static constraints = {
product (nullable:true)
productVersion (nullable:true)
}
}
哪里错了吗?
(我用的Grails 1.2.4)
伟大而快速的答案。非常感谢你! – hering 2010-09-21 08:45:42
好的答案,除了“在单元测试中调用mockDomain(Something)时,动态查找器和其他动态ORM方法(保存,获取,计数,..)都被嘲笑”并不完全正确。其中一些方法也缺失,例如FindAllWhereSomeNumberInList。 – Fletch 2010-09-21 08:58:52
谢谢Fletch,我不知道那是真的。我会更新答案以反思这一点。你知道是否有任何有效的清单,哪些不清楚?对于hering:很高兴能够有所帮助:)我知道在使用新框架时能够找到所需的全部信息是多么困难。 – xlson 2010-09-21 10:30:35