在 typeorm 官方文档https://typeorm.io/#/many-to-one-one-to-many-relations 中描述了如何执行此操作。但是我不能在 NestJS 中使用Repository和insert方法做同样的事情。
我已经写了这些实体(省略了其他列)
@Entity()
export class News {
@OneToMany(type => NewsImage, image => image.news)
public images: NewsImage[];
}
@Entity()
export class NewsImage {
@ManyToOne(type => News, news => news.images)
public news: News;
}
Run Code Online (Sandbox Code Playgroud)
我试过这样的事情
function first() {
const news = new News();
const image = new NewsImage();
news.images = [ image ];
return from(this.newsRepo.insert(news))
.pipe(
switchMap(() => this.imageRepo.insert(image)),
);
}
function second() {
const news = new News();
const image = new NewsImage();
image.news = news;
return from(this.imageRepo.insert(image))
.pipe(
switchMap(() => this.newsRepo.insert(news)),
)
}
Run Code Online (Sandbox Code Playgroud)
它插入新闻和图像,但图像newsId是null.
小智 15
检查级联属性
@Entity()
export class News {
@OneToMany(type => NewsImage, image => image.news, { cascade: ['insert', 'update'] })
public images: NewsImage[];
}
Run Code Online (Sandbox Code Playgroud)
然后如果你做类似的事情
let news = {
images: [{
date: "",
etc: ""
}],
title: ""
}
Run Code Online (Sandbox Code Playgroud)
如果您调用它,this.repository.save(news)它将保存新闻和图像。还有更新。在 typeorm 文档上查看更多关于此的文档。
| 归档时间: |
|
| 查看次数: |
14472 次 |
| 最近记录: |