Это, я надеюсь, вероятно вполне очевидно, но я не могу найти пример, который, как мне кажется, отвечает на мою проблему.Грааля, отображающая значения из двух таблиц с использованием первичных и внешних ключей
У меня есть база данных SQL, которую я не могу изменить, и внутри нее две таблицы, связанные с первичными/внешними ключами (test_scenario и test_exec_queue соответственно, поэтому значение PK из test_scenario может отображаться многократно в test_exec_queue), и когда я показываю данные на экране, на котором я хочу, вместо отображения значения FK из test_exec_queue. Я хочу, чтобы он использовал это, чтобы получить имя testScenarioName из таблицы test_scenario и отобразить это вместо этого.
До сих пор мой класс выглядит так, но я понятия не имею, что делать в логике выше, или я делаю это где-то еще? В контроллере? Любая помощь приветствуется
class TestExecQueue {
static constraints = {
testscenarioid(blank:false, editable:false)
myPriority(inList:[0,1,2,3,4], blank:false)
myState(inList:["READY"], blank:false)
}
static mapping = {
table "test_exec_queue"
version false
columns{
id column:"test_exec_queue_id"
testscenarioid column:"test_scenario_id"
myPriority column:"Priority"
myState column:"State"
}
}
Integer testscenarioid
Integer myPriority
String myState
}
Спасибо за это. Для целей показа все, что я хочу сделать, это получить значение test_scenario_id из таблицы test_exec_queue, перейти в таблицу test_scenario и найти эквивалент test_scenario_id, получить значение testScenarioName и отобразить это вместо значения (т. Е. Вместо того, чтобы показывать значение test_scenario_id 2, поскольку он хранится в таблице test_exec_queue, я хочу, чтобы он показывал «тест 001», который является значением testScenarioName, хранящимся в таблице test_scenario, которое имеет соответствующее значение test_scenario_id, обе таблицы имеют поле test_scenario_id). – MorkPork
Итак, я добавил материал, как было предложено выше, и что-то работает, однако в моем представлении теперь отображается «myframework.TestScenario: 1», а не фактическое значение, любые идеи? :/ – MorkPork
Это реализация 'toString()' по умолчанию для класса домена GORM. Переопределите его внутри 'TestScenario', чтобы отобразить поле имени, которое вы хотите. – codelark