0

我一直在使用 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. 运行选择查询以获取 quizInstance
  2. 运行选择查询以获取问题
  3. 运行插入查询以在 QUIZ_QUESTION 表中插入问题

我确实看到第三步只需要 quiz id 和 Question id 然后为什么要执行前两个步骤。是否有一种“addTo”类型的静态方法,我可以用Quiz.addToQuestionAndQuiz(questionId,QuizId) 来说如果我假设事情将在数据库方面进行的方式有误,请纠正我。

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

4

1 回答 1

0

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

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

让我知道这是否适合你

于 2012-09-13T13:11:13.710 回答