Grails中复合键和不同列名称的一对多

时间:2013-05-10 16:56:18

标签: grails mapping gorm one-to-many composite-key

这是一个语法问题。我想要一个Foo之间的一对多关系 - > Bar(简称):

class Foo {
    String fooPK1, fooPK2

    static mapping = {
        id composite: ["fooPK1", "fooPK2"]
    }

    static hasMany = [bars: Bar]
}

class Bar {
    String fooPK1, dumbNameForFooPK2, barPK1, barPK2
    Foo myFoo

    static mapping = {
        id composite: ["barPK1", "barPK2"]
        columns {
            myFoo[:] {
                column name: "FOO_PK_1"
                column name: "?????????????"
            }
        }
    }
}

在这种情况下,显然Foo.fooPK1映射到Bar.fooPK1,但我需要Foo.fooPK2映射到Bar.dumbNameForFooPK2。希望这是有道理的。

我的问题是我不知道语法应该是什么(或者如果有更好的方法可以做到这一点!)而且从我能找到的内容来看,grails文档并没有真正帮助。

1 个答案:

答案 0 :(得分:1)

你需要重命名Bar,wright中的外键列声明吗?

class Bar {
  Foo myFoo

  static mapping = {
    columns {
      myFoo {
        //declare them in the order of your id composite.
        column name: "foo_pk_1"
        column name: "dumb_name_for_foo_pk_2"
      }
    }
  }

}