【问题标题】:Creating a Super Object from its base type (Grails)从其基本类型创建一个超级对象(Grails)
【发布时间】:2015-04-14 06:04:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: grails inheritance grails-orm


    【解决方案1】:

    有通过属性的方式。您可能想在之后消除 ID 或在之前过滤掉您不需要的东西(这是一张地图)。例如

    new SuperUser(theUser.properties)
    

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

    一种更结构化的方法是为此案例引入适配器。

    【讨论】:

    • 我喜欢属性方法,因为您可以对过滤不需要的属性进行一些控制,或者您可以根据需要添加更多属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 2015-08-10
    相关资源
    最近更新 更多