【发布时间】:2012-08-02 08:36:44
【问题描述】:
场景是这样的:
每个Process 都有多个ProcessingSteps
我写的代码可以在不对应ProcessingSteps的情况下获取所有进程。
我知道我缺少 where 子句,我想问一下我们如何在 Grails 中做到这一点。
我只想为每个Process 获取对应的ProcessingStepUpdate
我有两个域类 ProcessingStep 和 ProcessingStepUpdate
package a.b.c
public class ProcessingStep {
Process process
}
public class ProcessingStepUpdate{
static belongsTo = [processingStep: ProcessingStep]
ProcessingStep processingStep
}
这是我正在编写的脚本
Process.list(max:1).each {
//List<ProcessingStep> test2= ProcessingStep.findAllByProcess(it)
//println it
def test3 = ProcessingStep.createCriteria().list() {
eq("process",it)
}
println it
it.list().each {
//not telling it where to get the list from
ProcessingStep.list().each { pstep ->
def test4 = ProcessingStepUpdate.createCriteria().list() {
eq("processingStep",pstep)
// Projections are aggregating, reporting, and
// filtering functions that can be applied after
// the query has finished.
// A common use for projections is to summarize data
// in a query
/* projections{
groupProperty("processingStep")
}*/
}
println pstep
//List<ProcessingStepUpdate> test = ProcessingStepUpdate.findAllByProcessingStep(it)
//List<ProcessingStepUpdate> test = ProcessingStepUpdate.findWhere()
//println "it"
}
}
}
一天之内我一直被这个问题困扰.. OOPS 世界的新手!
【问题讨论】:
-
ProcesshasManyProcessingSteps,ProcessingStephasManyProcessingStepUpdates,对吗?你想如何选择,为每个Process选择哪个ProcessingStepUpdate? -
顺便说一句,请使用
hasMany/belongsTo。 -
是的。我会再次解释。每个进程都有许多处理步骤,每个
processingStephasMany``ProcessingStepUpdate。我想选择哪个Process有哪个processingSteps -
大部分任务对我来说仍然不清楚。 “选择”是什么意思,打印所有
ProcessingSteps以获得Process?那它是怎么连接到ProcessingStepsUpdates的呢? -
class processingStepUpdate只为每个processingstep提供end-time stamp。这就是它被称为ProcessingStepUpdate的原因