GORM -добавляет дочерний элемент к родительскому и сохраняет groovy.lang.MissingMethodException

Это моя доменная модель, в опросе много вопросов, и на каждый вопрос есть много ответов:

class Survey {

    String name
    String customerName
    static hasMany = [questions: SurveyQuestion]

    static constraints = {
    }
}

class SurveyQuestion {

    String question

    static hasMany = [responses : SurveyQuestionResponse]
    static belongsTo = [survey: Survey]

    static constraints = {
    }
}

class SurveyQuestionResponse {

    String description
    static belongsTo = [question: SurveyQuestion]

    static constraints = {
    }
}

В моем контроллере есть метод, который принимает идентификатор опроса, ищет его, затем создает вопрос из другого параметра запроса, пытается добавить вопрос в опрос и сохранить его :

def addQuestion =
    {
        def question = new SurveyQuestion(question:params.question)
        def theSurvey = Survey.get(params.id)

        theSurvey.addToQuestions(question) //fails on this line
        theSurvey.save(flush:true)

        redirect(action: showSurvey, params:[id:theSurvey.id])
    }

. Однако,он терпит неудачу и возвращает это:

No signature of method: roosearch.Survey.addToQuestions() is applicable for argument types: (roosearch.SurveyQuestion) values: [roosearch.SurveyQuestion : null] Possible solutions: addToQuestions(java.lang.Object), getQuestions()

Я не совсем понимаю, что я здесь делаю неправильно, я пробовал различные альтернативные способы создания вопроса, даже создавая его вручную с помощью буквальной строки, но он всегда дает одну и ту же ошибку.

Кто-нибудь может мне посоветовать?

Спасибо

6
задан Jimmy 29 July 2012 в 16:58
поделиться