0

これはおそらく非常に明白だと思いますが、私の問題に答えると思う例を見つけることができません。

変更できないSQLデータベースがあり、その中に2つのテーブルがあり、主キー/外部キー(それぞれtest_scenarioとtest_exec_queueであるため、test_scenarioからのPK値はtest_exec_queue内に何度も表示される可能性があります)とデータを画面に表示するときにリンクされますtest_exec_queueからFK値を表示する代わりに、それを使用してtest_scenarioテーブルからtestScenarioNameを取得し、代わりに表示したいと思います。

これまでのところ、私のクラスはこのように見えますが、上記のロジックを実行するために何を入れるべきかわかりませんか、それとも他の場所でこれを実行しますか?コントローラーで?助けていただければ幸いです

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
}
4

1 に答える 1

0

すでに実装test_scenarioしたクラスに加えて、テーブルをマップするクラスを作成する必要があります。TestExecQueue

TestExecQueueクラスでは、整数フィールドではなく、クラスごとにシナリオにリンクします。

class TestExecQueue {
    static mapping = {
        scenario column:'test_scenario_id'
    }

    TestScenario scenario
}

注:これは関係のマッピングの一例です。他のオプションについては、Grailsドキュメントの「ドメインモデリング」セクションを確認する必要があります。

クラスの表示は、コントローラーとビューに完全に依存しており、明確に答えるには、より詳細な説明が必要になります。1つのオプションは、public toString()印刷されるクラスにメソッドを設定することです。

于 2013-03-15T16:20:06.410 に答える