один ко многим - отображение списка детей, связанных с родительским идентификатором - PullRequest
0 голосов
/ 10 января 2012

у меня два домена класса

1)

package opfwflowmonitor
import java.io.Serializable;
class OpfWF_Entry implements Serializable{

String name
Date create_date
static hasOne=[siteName:OpfWF_SiteName, currentStepStatus:OpfWF_CurrentStepStatus,currentStepName:OpfWF_CurrentStepName]
static hasMany = [historySteps:OpfWF_HistoryStepsInfo]

static mapping = {

            table name: "OS_WFENTRY", schema: "GSI"
            version false
            cache true
            historySteps cache:true 
            sort id:"desc"
            columns{
                    name column:'NAME'
                    create_date column:'CREATE_DATE'

    }


}
}

И

package opfwflowmonitor
import java.util.Date;
class OpfWF_HistoryStepsInfo {

Long entry_id
Long action_id
Long step_id
Date start_date
Date finish_date
String status

static belongsTo = [historyEntry: OpfWF_Entry]

static mapping = {
    table name: "OS_HISTORYSTEP", schema: "GSI"
    version false
    cache true
    historyEntry cache: true
    sort id:"desc"
    id generators: 'assigned'
    columns{
        id column:'ID'
        action_id column:'ACTION_ID'
        step_id column:'STEP_ID'
        start_date column:'START_DATE'
        finish_date column:'FINISH_DATE'
        status column:'STATUS'
    //  ENTRY_ID column:'ENTRY_ID'

        }
    historyEntry column:'entry_id'
    historyEntry insertable:false
    historyEntry updateable:false
}

String toString() { "$id" }
}

Как я могу показать список всех исторических систем со всеми свойствами, когда я выбираю OpfWF_Entry?

Как получить список дочерних таблиц (со всеми свойствами таблицы истории), когда пользователь щелкает список записей таблицы OpfWF_Entry.

Ответы [ 2 ]

0 голосов
/ 11 января 2012

Хорошо - отвечаю на мой вопрос.Вот как я это решил.

1)
Из списка в представлении OpfWF_Entry я вызвал действие searchme для historyStepInfo-Controller (добавлено мной самостоятельно).

2)
В historyStepInfoController - я добавил действие searchme - которое находит внутри домена hisotryStepInfo для всех совпадающих строк, используя params.id (передается из представления списка в opfEntry)

def opfWF_HistoryStepsInfoInstanceList = OpfWF_HistoryStepsidyryry_Fry.info*

рендеринга (представление: 'список', модель: [opfWF_HistoryStepsInfoInstanceList: opfWF_HistoryStepsInfoInstanceList, opfWF_HistoryStepsInfoInstanceTotal: opfWF_HistoryStepsInfoInstanceList * InInInstanceList2.varibale

И у меня есть все дети, связанные с выбором родителей.

Это работает для всего.Поиск, Список детей и все такое.

0 голосов
/ 10 января 2012

Я не совсем уверен, правильно ли я понял ваш вопрос. Свойства должны быть видны, когда у вас есть объект OpfWF_Entry, но если в вашем случае вы не можете получить к нему доступ, вы можете создать метод для предоставления любых свойств, которые вы хотите.

Контроллер:

def showAllHistorySteps = {
   def opfwfEntry = OpfWF_Entry.findById(params.id)
   def historySteps = opfwfEntry.historySteps
   historySteps.each {
      println "Step: ${it.toString()}"
   }
   return [historySteps:historySteps]
}

Домен:

class OpfWF_HistoryStepsInfo {
   def getAllProperties() {
      // code to return a list of properties you want
   }
}

Вид:

 < g:each in="historySteps" > <br/>
   < g:set var="listOfProps" value="${it.getAllProperties()"/>  <br/>
   // do what you want with listOfProps  <br/>
< /g:each> <br/>
...