我有2个域类。其中一个是用户,另一个是 super 用户。 super 用户包含一些额外的字段,并且SuperUser继承自User。 (还要注意:用户具有将inheritTableHeirachy
设置为false的映射)。
如何将现有的User实例对象转换为SuperUser?有没有一种方法可以在SuperUser构造函数中传递它?
我想保留对原始用户的引用,并想将SuperUser的其他属性添加到SuperUser表中。
最佳答案
有通过属性的方法。您可能想在以后消除ID或在之前进行过滤,这是您不需要的(这是一张 map )。例如。
new SuperUser(theUser.properties)
由于这仅“复制”了相同的属性名称,因此无法防止设置“愚蠢”的东西。这两个对象不必具有相同的类层次结构,等等。它只是为带有 map 的 map 调用c'tor。
一种更结构化的方式是针对这种情况引入适配器。