1

我有 4 个 Grails 域类(Domain1、Domain2、Domain3、Domain4)。这些域对象映射到具有完全相同的列集的遗留表。更准确地说,所有这些表都有 personFirstName、personLastName 和 personPhoneNumber 列。

这 4 个域类之间唯一不同的是它们引用的表名。

而不是在四个不同的地方复制/粘贴同一段代码并只修改它:

 static mapping = {

       table name:"legacy_table_name_A"     <====== (only difference)

       firstName column: "personFirstName"
       lastName column: "personLastName"
       phoneNumber column:"personPhoneNumber"
 }

我想知道是否有一种方法可以在一个名为MyAbstractDomainClass的抽象类中完成这一切,并让我的 Domain1、Domain2... 像这样扩展它:

 class MyAbstractDomainClass {
        String firstName
        String lastName
        String phoneNumber

       static mapping = {
           firstName column: "personFirstName"
           lastName column: "personLastName"
           phoneNumber column:"personPhoneNumber"
      }
}

  class Domain1 extends MyAbstractDomainClass {

       static mapping = {

       }
  }

如何实现每个域类的静态映射以具有不同的表名?

我正在使用 Grails 2.4.2

4

0 回答 0