【发布时间】: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 上工作的人,我将这段代码可视化为以下三个步骤
- 运行选择查询以获取 quizInstance
- 运行选择查询以获取问题
- 运行插入查询以在 QUIZ_QUESTION 表中插入问题
我确实看到第三步只需要测验 ID 和问题 ID,然后为什么要执行前两个步骤。有没有一种“addTo”的静态方法可以用来说Quiz.addToQuestionAndQuiz(questionId,QuizId)
如果我假设数据库方面的事情会发生错误,请纠正我。
还有一种方法可以直接使用 addTo 方法添加值列表,还是必须使用 for 循环?
【问题讨论】:
-
出于好奇,您是否发现您的这部分代码表现不佳?如果没有,那为什么要担心呢?
-
您可以使用根据关系而不同的 HQL 语句,如果它是 M:M 或 1:M。
-
@cdeszaq 你能把你的评论变成答案吗?
标签: grails grails-orm dynamicmethod