1

我有两个具有共同主键的表。现在我想从这两个表中获取数据并使用该主键在单个视图中显示。

我如何在单个域类中获取两个表数据?如何指定映射?

例如

表 A 和表 B 都在单一模式 ABC 中

class X {
   int id
   String name

   static mapping = {
      table name: "Table-A", schema: "ABC"
      columns {
         name column:'name'
      }
   }
}

现在我想从表 B 中获取地址,以便我的视图如下所示

ID  NAME  ADDRESS
2   HSJHD  23 X-Street Washington USA

如何在单个域类中获取两个表数据?

4

3 回答 3

2

这听起来像是外键关系,您只需在每个对象中使用 belongsTo (提供一对一的关系)。 http://grails.org/doc/latest/ref/Domain%20Classes/belongsTo.html

否则,您可以在数据库上创建一个数据库视图,然后创建一个域对象以匹配该视图。基于数据库视图创建域与基于表创建域相同。

于 2011-12-29T20:25:21.277 回答
0

几个选项

  1. 只需使用 hql 查询并加入主键

  2. 从两个表创建一个视图,并将新表映射到该视图

  3. 使用属于,当你访问一个对象然后访问另一个

于 2012-01-01T15:02:11.710 回答
-1

您将需要使用约束:http ://www.grails.org/doc/2.0.x/ref/Constraints/Usage.html

http://www.grails.org/doc/2.0.x/guide/single.html#constraints

于 2011-12-29T17:20:42.483 回答