【问题标题】:Grails - Multiple Tables in Single Domain ClassGrails - 单域类中的多个表
【发布时间】:2011-12-29 17:05:05
【问题描述】:

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

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

举例

Table-A 和 Table-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

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

【问题讨论】:

    标签: grails grails-orm grails-plugin grails-domain-class grails-controller


    【解决方案1】:

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

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

    【讨论】:

    • 我试过 BelongsTO 但它不起作用。由于我有旧数据库并且没有更改数据库的权限,我该怎么做?什么是 grails 中的联接表?你能把解决方案放在上面的代码上吗?
    • 我不知道你遇到了什么问题,所以我不知道如何发布解决方案而不是建议这样做的方法。
    【解决方案2】:

    几个选项

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

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

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

    【讨论】:

    • 为 belongsTO 放置代码示例。我想不通。没有关于此的博客文章。自从出错后真的很难
    【解决方案3】:

    【讨论】:

    • 我没有在单个域类中看到两个表映射。你明白我的问题吗?举出上面代码的例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多