我是新來的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