Grails GORM可以复制整个对象吗?

Grails GORM可以复制整个对象吗?,grails,groovy,gorm,grails-domain-class,Grails,Groovy,Gorm,Grails Domain Class,我们正在使用grails开发一些web应用程序 对于具有子类的域类,我想知道是否可以复制整个对象,包括属于父对象的所有子对象 谢谢如评论中所述,您可以使用克隆方法扩展gorm 但是,如果您不想弄乱gorm api,一个非常简单的解决方案是分离现有对象并“重新保存”它。请注意,这不会执行deepClone 步骤: 将id设为空 更新副本中应不同的字段 拆下有问题的对象 保存它 代码示例,假设域类区域,其具有唯一的名称属性,需要在保存之前进行更改: def copyRegion(Region reg

我们正在使用grails开发一些web应用程序 对于具有子类的域类,我想知道是否可以复制整个对象,包括属于父对象的所有子对象


谢谢

如评论中所述,您可以使用
克隆
方法扩展gorm

但是,如果您不想弄乱gorm api,一个非常简单的解决方案是分离现有对象并“重新保存”它。请注意,这不会执行
deepClone

步骤:

  • 将id设为空
  • 更新副本中应不同的字段
  • 拆下有问题的对象
  • 保存它
  • 代码示例,假设域类区域,其具有唯一的名称属性,需要在保存之前进行更改:

    def copyRegion(Region region, String newName) {
        region.id = null
        region.name = newName
        region.discard()
        if (region.save()) {
            // handle success
        } else {
            // handle error
        }
    }
    

    另请参见关于断开对象的连接。

    为什么需要它?您需要在会话或数据库中复制对象吗?这个答案可能会帮助您:好了,什么都没有。传统的方法是浏览您的层次结构,
    setId(null)
    ,并希望一切顺利。在您的案例中,您可能有机会使用gorm元信息获得通用解决方案。@PhilMr clone only object本身,我需要创建所有子对象以克隆仅复制对象本身,我也需要创建所有子对象