Метод не найден - findOrCreateWhere - gorm - PullRequest
0 голосов
/ 30 января 2012

Я создал класс Role, содержащий только одну переменную полномочий:

class Role {
    String authority
}

Теперь, когда я пытаюсь сохранить новые значения в BootStrap.groovy (приложение grails), я делаю это:

def adminRole = Role.findOrCreateWhere(authority: "ROLE_ADMIN");

Когда я запускаю это, я получаю следующее исключение:

2012-01-29 23:35:03,067 [Thread-9] ERROR org.codehaus.groovy.grails.web.context.GrailsContextLoader  - Error executing bootstraps: groovy.lang.MissingMethodException: No signature of method: org.rango.auth.Role.findOrCreateWhere() is applicable for argument types: () values: []
Possible solutions: findOrCreateWhere(java.util.Map), findOrSaveWhere(java.util.Map)
org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: org.rango.auth.Role.findOrCreateWhere() is applicable for argument types: () values: []
Possible solutions: findOrCreateWhere(java.util.Map), findOrSaveWhere(java.util.Map)
    at grails.util.Environment.evaluateEnvironmentSpecificBlock(Environment.java:290)
    at grails.util.Environment.executeForEnvironment(Environment.java:283)
    at grails.util.Environment.executeForCurrentEnvironment(Environment.java:259)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: groovy.lang.MissingMethodException: No signature of method: org.rango.auth.Role.findOrCreateWhere() is applicable for argument types: () values: []
Possible solutions: findOrCreateWhere(java.util.Map), findOrSaveWhere(java.util.Map)
    at BootStrap$_closure1.doCall(BootStrap.groovy:16)
    ... 8 more

Что не так с моим кодом?

Спасибо!

1 Ответ

0 голосов
/ 30 января 2012

попробуйте это: def adminRole = Role.findOrCreateWhere ([author: "ROLE_ADMIN"]);

...