【问题标题】:How can I get dateCreated in Has-Many Relation in Grails?如何在 Grails 的 Has-Many 关系中获取 dateCreated?
【发布时间】:2015-01-30 23:48:22
【问题描述】:

我有以下域类:

class A {
 hasMany = [bs : B]

}

class B { }

请注意,B 与 a 没有后向关系。 GORM 在我的 MYSQL 数据库 a_b 中创建一个连接表。该表有两列,a 的 id 和 b 的 id。

如何在连接表中获得dateCreated

【问题讨论】:

  • 自己创建一个连接表的模型并在其上添加任何你想要的属性。
  • @JoshuaMoore 请提供完整答案,以便我接受。

标签: grails grails-orm


【解决方案1】:

自己创建连接表的模型并在其上添加所需的任何属性。简单,完成。

例如:

class A {
  static hasMany = [bs: JoinB]
}

class JoinB {
  static belongsTo = [a: A]
  B b
  Date dateCreated

  static mapping = {
    autoTimestamp true // default, but I like to be explicit about it.
  }
}

class B {
  String whatever
}

(小心拼写错误等。我只是在脑海中这样做了)

【讨论】:

  • 你不需要autoTimestamp true 默认为true。
  • 我认为您的解决方案与我的情况相同。我想将创建一个名为 a_joinB 的新连接表,因为没有对 A 的反向引用。
  • 但是,在我的示例中,您现在有一个明确的连接模型,您可以添加诸如 dateCreated 之类的数据,而不管a_joinB 考虑到B 可能已经创建了任何其他时间。
  • 我想你错过了 belongsTo。
  • 但这仍然不是很好,因为当你做a.bs你没有得到一个Bs数组你得到一个JoinBs数组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
  • 1970-01-01
相关资源
最近更新 更多