Grails 使用findAll、List()或SQL查询返回列表中的所有域值

Grails 使用findAll、List()或SQL查询返回列表中的所有域值,grails,groovy,findall,Grails,Groovy,Findall,我试图检索所有存在的域值,并将它们放入一个列表中。我使用一个模式对话框来显示这个列表,但是目前检索到的所有值都只是我正在查看的实例中存在的值,而不是检索数据库中存在的所有值 因此,对于每个模板,都有许多步骤,这就是我们要处理的关系。当我打开模型对话框检索数据库中的所有步骤时,它只显示该模板中存在的步骤。一些截图可能有助于解释 包含模式对话框的Show.gsp页面 <div id="basicModal" title="Existing Template Steps"> <

我试图检索所有存在的域值,并将它们放入一个列表中。我使用一个模式对话框来显示这个列表,但是目前检索到的所有值都只是我正在查看的实例中存在的值,而不是检索数据库中存在的所有值

因此,对于每个模板,都有许多步骤,这就是我们要处理的关系。当我打开模型对话框检索数据库中的所有步骤时,它只显示该模板中存在的步骤。一些截图可能有助于解释

包含模式对话框的Show.gsp页面

<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