grails - 从其基本类型创建一个 super 对象(Grails)

标签 grails inheritance gorm

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

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

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

最佳答案

有通过属性的方法。您可能想在以后消除ID或在之前进行过滤,这是您不需要的(这是一张 map )。例如。

new SuperUser(theUser.properties)

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

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

关于grails - 从其基本类型创建一个 super 对象(Grails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29620189/

相关文章:

grails - grails hasOne vs hasMany行为

grails - 错误:列 “this_.date”必须出现在GROUP BY子句中或在聚合函数中使用

grails - Grails-在单个表单内创建多个嵌套对象

heroku - Grails GraphQL插件-部署到Heroku时 Controller 未运行

tomcat - 错误没有使用 grails 找到默认容器

mysql - 如何在MySQL中创建也是主键的外键?

java - 异常 : Code refactoring and best design (protected or getter/setter)

grails - 创建域类的新实例不保存

grails - Grails具有一个单向

vb.net - 接口(interface)需要继承基类