Grails addTo和removeFrom动态方法的性能

时间:2012-09-13 09:19:38

标签: grails gorm dynamicmethod

我一直在使用Grails addTo和removeFrom动态方法,它们很棒,通常我会按照以下方式使用它们

String id =params.quizId
Quiz quizInstance = Quiz.get(Long.parseLong(id))// **1**
for( String q in params.questionCheckBox)
{   
    Question question = Question.get(Long.parseLong(q))//**2**
    quizInstance.addToQuestions(question)//**3**
}

作为一个曾经在java上工作的人,我按照以下三个步骤可视化这段代码

  1. 运行select查询以获取quizInstance
  2. 运行选择查询以获取问题
  3. 运行插入查询以在QUIZ_QUESTION表中插入问题
  4. 我确实看到第三步只需要测验ID和问题ID然后为什么要执行前两步。是否有一种“addTo”类型的静态方法,我可以用它来说Quiz.addToQuestionAndQuiz(questionId,QuizId) 如果我错误地假设数据库方面会有问题,请纠正我。

    还有一种方法可以使用addTo方法直接添加值列表,还是必须使用for循环?

1 个答案:

答案 0 :(得分:0)

这只是一个建议 - 我不知道这是否会正常工作:

String id =params.quizId
List<Question> questionList = Question.findAllByIdInList(params.questionCheckBox)
Quiz quizInstance = Quiz.get(Long.parseLong(id))
quizInstance.questions += questionList

让我知道这是否适合您