Grails Domain Class继承:配置类列

时间:2013-11-15 22:24:35

标签: grails inheritance

我在Grails应用程序中的域类中使用继承。显然,继承会在我的数据库中添加一个“类”列。 “class”列的内容是Domain Class的完全限定名称,例如com.myapp.MyClass

现在,如果我进行了一些重构,并且类名不再是com.myapp.MyClass,而是com.myapp.mypackage.MyClass,然后数据库仍然包含应用程序中现在不再存在的旧类名。

有没有办法配置放在“class”列中的字符串?就像该类的另一个唯一标识符,然后映射到我的Grails配置中的类名或类似的东西?

1 个答案:

答案 0 :(得分:1)

我认为你需要的是班上的鉴别者。

  

默认情况下,映射继承时Grails使用单表模型   其中所有类共享同一个表。使用鉴别器列   确定每一行的类型,默认为完整的类名。 ref

你可以这样映射:

class PodCast extends Content {
    …
    static mapping = {
        discriminator "audio"
    }
}

查看此文档,它为您提供了更多选项以更详细地自定义

http://grails.org/doc/latest/ref/Database%20Mapping/discriminator.html