我有 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