如何在 typeorm 中克隆实体

Alb*_*ert 5 typeorm

我有一个CategoryEntityEntryEntity。类别可以包含条目。我的任务是克隆属于一个类别的条目并将其移动到另一个类别。

使用 queryRunner 我可以编写以下代码:

        await queryRunner.manager.getRepository(CategoryEntity)
                                 .createQueryBuilder()
                                 .relation(CategoryEntity, 'entries')
                                 .of(category)
                                 .add(entry);
Run Code Online (Sandbox Code Playgroud)

但它只会将所选条目复制粘贴到所选类别,也就是说,插入的实体将具有相同的 id 等,所以如果我删除父级子级(插入的实体也会被删除),但它不是我正在寻找的行为。我需要一个完整的克隆,所以我可以这样做:

        const { id, ...updateEntryBody } = entry;
        const newEntry = await this.entryRepository.save(updateEntryBody);
        await queryRunner.manager.getRepository(CategoryEntity)
                                 .createQueryBuilder()
                                 .relation(CategoryEntity, 'entries')
                                 .of(category)
                                 .add(newEntry);
Run Code Online (Sandbox Code Playgroud)

它将创建该条目的克隆,但这里还有一个与图像有关的问题条目。也就是说,条目可以包含图像。因此,我认为,我必须对条目可能包含的一大堆图像执行类似的操作。我一点也不喜欢这个主意。

我的问题是:有没有更好的方法来处理这个问题?