从基类型创建超级对象(Grails)

时间:2015-04-14 06:04:01

标签: grails inheritance gorm

我有2个域类。其中一个是User,另一个是SuperUser。超级用户包含一些额外的字段,SuperUser继承自User。 (另请注意:用户具有将inheritTableHeirachy设置为false的映射。

如何将现有的User实例对象强制转换为SuperUser?有没有办法可以在SuperUser构造函数中传递它?

我想保留对原始用户的引用,我想将SuperUser的额外属性添加到SuperUser表中。

1 个答案:

答案 0 :(得分:1)

有通过属性的方式。您可能希望之后根除ID或之前已过滤,您不需要的(这是地图)。 E.g。

new SuperUser(theUser.properties)

由于这只是“复制”相同的属性名称,因此无法防止设置“愚蠢”的东西。两个对象不必具有相同的类层次结构等。它只是用地图调用c'tor。

更结构化的方式是为这种情况引入适配器。