Je suis nouveau à Grails et l'erreur suivante:
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: Pas de signature de la méthode findAll() est applicable pour les types d'arguments: String, ArrayList
L'erreur se produit lorsque je lance test-app
. Il se produit à l'endroit suivant:
SomethingVO[] findBySomeNumber(String searchString) {
searchString = "%"+searchString+"%"
return Something.findAll("from Something AS s WHERE s.some_number LIKE ?",[searchString]).collect {
new SomethingVO(it);
}
}
La classe Something
est un objet de domaine:
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)
}
}
Où est l'erreur?
(j'utilise Grails 1.2.4)
grande et rapide réponse. Merci beaucoup! – hering
Bonne réponse, sauf que "Les finders dynamiques et les autres méthodes ORM dynamiques (save, get, count, ..) sont tous mockés lorsque vous appelez mockDomain (Quelque chose) dans votre test unitaire" n'est pas tout à fait vrai. Certaines de ces méthodes manquent aussi, par exemple FindAllWhereSomeNumberInList. – Fletch
Merci fletch, je n'étais pas au courant que c'était le cas. Je vais mettre à jour la réponse pour réfléchir à cela. Savez-vous s'il y a une bonne liste de ce qui fonctionne et de ce qui ne fonctionne pas? Héritage: heureux d'être utile :) Je sais à quel point il peut être difficile de trouver toutes les informations dont vous avez besoin lorsque vous travaillez avec un nouveau cadre. – xlson