【问题标题】:Grails addTo and removeFrom dynamic methods performanceGrails addTo 和 removeFrom 动态方法性能
【发布时间】:2012-09-06 08:31:39
【问题描述】:

我一直在使用 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 表中插入问题

我确实看到第三步只需要测验 ID 和问题 ID,然后为什么要执行前两个步骤。有没有一种“addTo”的静态方法可以用来说Quiz.addToQuestionAndQuiz(questionId,QuizId) 如果我假设数据库方面的事情会发生错误,请纠正我。

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

【问题讨论】:

  • 出于好奇,您是否发现您的这部分代码表现不佳?如果没有,那为什么要担心呢?
  • 您可以使用根据关系而不同的 HQL 语句,如果它是 M:M 或 1:M。
  • @cdeszaq 你能把你的评论变成答案吗?

标签: grails grails-orm dynamicmethod


【解决方案1】:

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

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

让我知道这是否适合你

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多