Grails 使用findAll、List()或SQL查询返回列表中的所有域值
我试图检索所有存在的域值,并将它们放入一个列表中。我使用一个模式对话框来显示这个列表,但是目前检索到的所有值都只是我正在查看的实例中存在的值,而不是检索数据库中存在的所有值 因此,对于每个模板,都有许多步骤,这就是我们要处理的关系。当我打开模型对话框检索数据库中的所有步骤时,它只显示该模板中存在的步骤。一些截图可能有助于解释 包含模式对话框的Show.gsp页面Grails 使用findAll、List()或SQL查询返回列表中的所有域值,grails,groovy,findall,Grails,Groovy,Findall,我试图检索所有存在的域值,并将它们放入一个列表中。我使用一个模式对话框来显示这个列表,但是目前检索到的所有值都只是我正在查看的实例中存在的值,而不是检索数据库中存在的所有值 因此,对于每个模板,都有许多步骤,这就是我们要处理的关系。当我打开模型对话框检索数据库中的所有步骤时,它只显示该模板中存在的步骤。一些截图可能有助于解释 包含模式对话框的Show.gsp页面 <div id="basicModal" title="Existing Template Steps"> <
<div id="basicModal" title="Existing Template Steps">
<g:include controller="templateStep" action="renderAllStepsList" />
</div>
服务
def getSuggestedTemplateSteps() {
def sql = new Sql(dataSource)
def rows = sql.rows("select distinct * from template_steps")
def listOfSteps = rows.collect()
return listOfSteps
}
}
这是当前的模态对话框。正如您所看到的,它向我展示了模板实例中存在的所有步骤,但是我希望检索数据库中存在的所有步骤。这可能吗
-更新-
模板域类:
import org.codehaus.groovy.grails.commons.DefaultGrailsDomainClassProperty
import org.codehaus.groovy.grails.commons.GrailsClass
class Template {
static notCloneable = ['name']
static hasMany = [templateSteps:TemplateStep]
int id
String name
String description
String progressionType
String defaultPlanType
String defaultPlanPhase
String guiFlag
String extFun
static mapping = {
version false
table 'TEMPLATE'
id column: 'SYSID', generator: 'assigned'
progressionType column: 'PROGRESSION_TYPE'
defaultPlanType column: 'DEFAULT_PLAN_TYPE'
defaultPlanPhase column: 'DEFAULT_PLAN_PHASE'
guiFlag column: 'GUI_FLAG'
extFun column: 'EXT_FUN'
templateSteps sort :'stepSeq', order:'asc'
}
static constraints = {
name (maxSize:250, blank:false, nullable:false, unique:true)
description (maxSize:250, blank:true, nullable:true)
progressionType (maxSize:100, blank:true, nullable:true)
defaultPlanType (maxSize:50, blank:true, nullable:true)
defaultPlanPhase (maxSize:250, blank:true, nullable:true)
guiFlag (maxSize:10, blank:true, nullable:true)
extFun (maxSize:10, blank:true, nullable:true)
}
}
import org.codehaus.groovy.grails.commons.DefaultGrailsDomainClassProperty
import org.codehaus.groovy.grails.commons.GrailsClass
class TemplateStep {
static notCloneable = []
static belongsTo = [template:Template]
static hasMany = [templateInput:TemplateInput,templateOutput:TemplateOutput]//,templateOutputTransDisplayMap:TemplateOutputTransDisplayMap,templateInputTransDisplayMap:TemplateInputTransDisplayMap]
Long id
String step
String validationProcedure
String actionProcedure
String transactionTable
String displayLable
String windowLable
String cancelProcedure
String endPlanPhase
String mfOutFlag
Long stepSeq
String swfName
static mapping = {
version false
table'TEMPLATE_STEPS'
id column: 'SYSID', generator: 'assigned'
template column: 'MT_SYSID'
validationProcedure column: 'VALIDATION_PROCEDURE'
actionProcedure column: 'ACTION_PROCEDURE'
transactionTable column: 'TRANSACTION_TABLE'
displayLable column: 'DISPLAY_LABLE'
windowLable column: 'WINDOW_LABLE'
cancelProcedure column: 'CANCEL_PROCEDURE'
endPlanPhase column: 'END_PLAN_PHASE'
mfOutFlag column: 'MFOUT_FLAG'
stepSeq column: 'STEP_SEQ'
swfName column: 'SWF_NAME'
}
static constraints = {
step (maxSize:250, blank:false, nullable:false)
validationProcedure (maxSize:250, blank:true, nullable:true)
actionProcedure (maxSize:250, blank:true, nullable:true)
transactionTable (maxSize:250, blank:true, nullable:true)
displayLable (maxSize:50, blank:true, nullable:true)
windowLable (maxSize:50, blank:true, nullable:true)
cancelProcedure (maxSize:250, blank:true, nullable:true)
endPlanPhase (maxSize:30, blank:true, nullable:true)
mfOutFlag (maxSize:30, blank:true, nullable:true)
stepSeq (maxSize:12, blank:true, nullable:true)
swfName (maxSize:100, blank:true, nullable:true)
template (blank:true, nullable:true)
}
}
模板步骤域类:
import org.codehaus.groovy.grails.commons.DefaultGrailsDomainClassProperty
import org.codehaus.groovy.grails.commons.GrailsClass
class Template {
static notCloneable = ['name']
static hasMany = [templateSteps:TemplateStep]
int id
String name
String description
String progressionType
String defaultPlanType
String defaultPlanPhase
String guiFlag
String extFun
static mapping = {
version false
table 'TEMPLATE'
id column: 'SYSID', generator: 'assigned'
progressionType column: 'PROGRESSION_TYPE'
defaultPlanType column: 'DEFAULT_PLAN_TYPE'
defaultPlanPhase column: 'DEFAULT_PLAN_PHASE'
guiFlag column: 'GUI_FLAG'
extFun column: 'EXT_FUN'
templateSteps sort :'stepSeq', order:'asc'
}
static constraints = {
name (maxSize:250, blank:false, nullable:false, unique:true)
description (maxSize:250, blank:true, nullable:true)
progressionType (maxSize:100, blank:true, nullable:true)
defaultPlanType (maxSize:50, blank:true, nullable:true)
defaultPlanPhase (maxSize:250, blank:true, nullable:true)
guiFlag (maxSize:10, blank:true, nullable:true)
extFun (maxSize:10, blank:true, nullable:true)
}
}
import org.codehaus.groovy.grails.commons.DefaultGrailsDomainClassProperty
import org.codehaus.groovy.grails.commons.GrailsClass
class TemplateStep {
static notCloneable = []
static belongsTo = [template:Template]
static hasMany = [templateInput:TemplateInput,templateOutput:TemplateOutput]//,templateOutputTransDisplayMap:TemplateOutputTransDisplayMap,templateInputTransDisplayMap:TemplateInputTransDisplayMap]
Long id
String step
String validationProcedure
String actionProcedure
String transactionTable
String displayLable
String windowLable
String cancelProcedure
String endPlanPhase
String mfOutFlag
Long stepSeq
String swfName
static mapping = {
version false
table'TEMPLATE_STEPS'
id column: 'SYSID', generator: 'assigned'
template column: 'MT_SYSID'
validationProcedure column: 'VALIDATION_PROCEDURE'
actionProcedure column: 'ACTION_PROCEDURE'
transactionTable column: 'TRANSACTION_TABLE'
displayLable column: 'DISPLAY_LABLE'
windowLable column: 'WINDOW_LABLE'
cancelProcedure column: 'CANCEL_PROCEDURE'
endPlanPhase column: 'END_PLAN_PHASE'
mfOutFlag column: 'MFOUT_FLAG'
stepSeq column: 'STEP_SEQ'
swfName column: 'SWF_NAME'
}
static constraints = {
step (maxSize:250, blank:false, nullable:false)
validationProcedure (maxSize:250, blank:true, nullable:true)
actionProcedure (maxSize:250, blank:true, nullable:true)
transactionTable (maxSize:250, blank:true, nullable:true)
displayLable (maxSize:50, blank:true, nullable:true)
windowLable (maxSize:50, blank:true, nullable:true)
cancelProcedure (maxSize:250, blank:true, nullable:true)
endPlanPhase (maxSize:30, blank:true, nullable:true)
mfOutFlag (maxSize:30, blank:true, nullable:true)
stepSeq (maxSize:12, blank:true, nullable:true)
swfName (maxSize:100, blank:true, nullable:true)
template (blank:true, nullable:true)
}
}
你一定是做错了什么。TemplateStep.list应返回所有实例。显示你的域类我也是这么想的,我已经用模板和模板步骤域类更新了OP。你确定模板步骤表中还有其他行吗?比较TemplateStep.count的输出,在打开模式对话框时从template_stepTemplateStep.count返回6573中选择count*,并从TemplateStep_steps返回6573中选择count*。也可以尝试TemplateStep.list.size