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

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

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

最佳答案

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

new SuperUser(theUser.properties)

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

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

07-26 05:04