Sql Grails使用主键和外键显示两个表中的值
我希望,这可能很明显,但我找不到一个我认为能回答我问题的例子 我有一个无法修改的SQL数据库,其中有两个表,与主键/外键链接(分别是test_scenario和test_exec_queue,因此test_scenario中的PK值可以在test_exec_queue中多次显示),当我在屏幕上显示数据时,我希望它,我不想显示test_exec_队列中的FK值,而是想让它从test_场景表中获取testScenarioName并显示它 到目前为止,我的课堂看起来是这样的,但我不知道要用什么来完成上面的逻辑,或者我是在其他地方做的?在控制器中?谢谢你的帮助Sql Grails使用主键和外键显示两个表中的值,sql,grails,Sql,Grails,我希望,这可能很明显,但我找不到一个我认为能回答我问题的例子 我有一个无法修改的SQL数据库,其中有两个表,与主键/外键链接(分别是test_scenario和test_exec_queue,因此test_scenario中的PK值可以在test_exec_queue中多次显示),当我在屏幕上显示数据时,我希望它,我不想显示test_exec_队列中的FK值,而是想让它从test_场景表中获取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
}
除了已经实现的
TestExecQueue
类之外,还需要创建一个映射test\u场景的类
在TestExecQueue
类中,您可以按类而不是按整数字段链接到场景:
class TestExecQueue {
static mapping = {
scenario column:'test_scenario_id'
}
TestScenario scenario
}
注意:这是映射关系的一个示例,您应该查看以获取其他选项
类的显示完全取决于您的控制器和视图,这需要您进行更多的细化才能清楚地回答。一个选项是在将要打印的类上设置public-toString()
方法。谢谢。出于显示目的,我希望它所要做的就是从test_exec_队列表中获取test_scenario_id值,转到test_scenario表并查找等效的test_scenario_id,获取testScenarioName值并显示该值,而不是该值(即,我希望它显示“test 001”,这是存储在具有匹配的test_scenario_id值的test_scenario_表中的testScenarioName值,而不是将test_scenario_id值2显示为其存储在test_exec_队列表中的值,这两个表都有一个名为test_scenario_id的字段).因此,我已经添加了上面建议的内容,并且有些东西可以工作,但是我的视图现在显示的是“myframework.TestScenario:1”,而不是实际值,有什么想法吗?:/这是默认的toString()
GORM域类的实现。在TestScenario
中重写它以显示所需的名称字段。啊哈!太棒了!干杯,我把toString放错了位置,放错了方向,干杯