Тип NestJS для сохранения отношений «один ко многим»

#mysql #typescript #nestjs #one-to-many #typeorm

Вопрос:

Я пытаюсь сохранить массив объектов в своем проекте nestjs в соотношении «один ко многим».

Интерфейс дает мне что-то подобное для работы:

 [ { "actor":"actorname", "role":"actorrole" }, { "actor":"actorname2", "role":"actorrole2" } ]  

чтобы сохранить все это, я создал сущность фильма и сущность актера, подобную этой:

актер.сущность.ts

 //imports @Entity() export class Actor {  @PrimaryGeneratedColumn()  id: number;   @ManyToOne(() => Movie, (movie) => movie.actors)  movieId: number;   @Column()  role: string;   @Column()  actor: string; }  

фильм.сущность.ts

 //imports @Entity() export class Movie {  @PrimaryGeneratedColumn()  id: number;   //more stuff   @OneToMany(() => Actor, (actor) => actor.movieId)  actors: Actor[]; }  

проблема сейчас в том, что мой интерфейс возвращает данные JSON в виде целой строки, поэтому я должен JSON.parse() сначала их обработать и принять в своем dto, как это:

 //imports export class CreateMovieDto {  actorsArray: string; }  

теперь моя проблема заключается в сохранении данных json

 //imports @EntityRepository(Movie) export class MoviesRepository extends Repository<Movie> {  async createMovie(  createMovieDto: CreateMovieDto,  fileName: string,  filePath: string,  ) {  const movie = this.create(createMovieDto);   let actorsArray = JSON.parse(createMovieDto.actorsArray);  //how do i save it now together with the movie?    try {  //await this.save(movie); disabled for now  return movie;  } catch (error) {  if ((error.code = 'ER_DUP_ENTRY')) {  console.log(error);  throw new ConflictException('Movie already exists');  } else {  console.log(error);  throw new InternalServerErrorException();  }  }  }