我有一个非常简单的问题,TypeOrm无法解决。
例如,我有一个包含任务的项目。每个任务都有几个文件,例如
项目
@Entity()
export class Project{
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@OneToMany(type => Task, task=> task.project)
tasks: Task[];
}
任务
@Entity()
export class Task {
@PrimaryGeneratedColumn()
id: number;
@Column()
url: string;
@ManyToOne(type => Project, project => project.tasks)
project: Project;
@OneToMany(type => File, file => file.task)
files: File[];
}
文件
@Entity()
export class File {
@PrimaryGeneratedColumn()
id: number;
@Column()
url: string;
@ManyToOne(type => Task, task => task.files)
task: Task;
}
问题是,如何克隆具有所有任务和文件的项目
我拥有的简单结构
Project
|-task1-|
--file1
--file2
|-task1-|
--file3
--file4
当我创建 project 对象的副本并尝试保存时, TypeOrm 仅更改主键的ID 在数据库中。例如
const object = new Project();
for (const prop in originProject) {
object[prop] = originProject[prop];
}
object.name = 'Cloned';
await connection.manager.save(photo2);
我该怎么做才能用所有任务和文件来深度克隆项目?
当我创建 project 对象的副本并尝试保存时, TypeOrm 仅更改主键的ID 在数据库中。例如
const object = new Project();
for (const prop in originProject) {
object[prop] = originProject[prop];
}
object.name = 'Cloned';
await connection.manager.save(photo2);
我该怎么做才能用所有任务和文件来深度克隆项目?