Grails使用主键和外键显示两个表中的值

时间:2013-03-15 15:36:41

标签: sql grails

我希望这可能非常明显,但我找不到一个我认为能解决问题的例子。

我有一个我无法修改的SQL数据库,其中有两个表,分别与主键/外键(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
}

1 个答案:

答案 0 :(得分:0)

除了已经实施的test_scenario课程外,您还需要创建一个映射TestExecQueue表格的课程。

TestExecQueue类中,您将按类链接到场景,而不是整数字段:

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

    TestScenario scenario
}

注意:这是映射关系的一个示例,您应该查看Domain Modeling section of the Grails Documentation以了解其他选项。

类的显示完全取决于您的控制器和视图,您需要更详细的说明才能清楚地回答。一种选择是在将要打印的类上设置public toString()方法。