当前位置: 首页 > 知识库问答 >
问题:

如何发布包含实体数组的DTO?

邹华皓
2023-03-14

我有几个关于NestJS和TypeOrm的问题。首先,如何将字符串数组传递给DTO?我试图只是使用: string[]type,但编译器给出了一个错误。这是我的Post实体:

@Entity('posts')
export class Post {
    @PrimaryGeneratedColumn()
    id: number;

    @ManyToOne(() => User, user => user.posts, { cascade: true })
    author: number;

    @Column({ type: 'timestamp' })
    date: Date;

    @Column()
    text: string;
    
    @Column({ default: 0 })
    likes: number;

    @OneToMany(() => Photo, photo => photo.post, { cascade: true })
    photos: Photo[];
}

并创建PostdTo:

export class CreatePostDto {
    authorId: number;
    date: Date;
    text?: string;
    // photos?: string[];
}

第二个问题:我如何将每张照片(保持与post的连接)、post repo的帖子以及通过添加绑定到用户的新帖子来更新用户的帖子保存到存储库中。我试过这样的方法,但显然不行。

    async create(createPostDto: CreatePostDto) {
      const post = this.postsRepository.create(createPostDto);
      const user = await this.usersRepository.findOne(createPostDto.authorId);
      
      return this.postsRepository.save({author: user, date: createPostDto.date, text: createPostDto.text});
  }

共有1个答案

苍意智
2023-03-14

您错过的是在将照片与帖子绑定之前保存照片,以下是一个示例:

async create(createPostDto: CreatePostDto) {
 let photos:Array<Photo> = [] ; array of type photo entity
   for(let urlPhoto of createPostDto.photos)
   {
    let  photo =  await this.imageRepository.save({url : urlPhoto }); you must save the photos first
    photos.push(photo); 
   }
  const user = await this.usersRepository.findOne(createPostDto.authorId);
  
  return this.postsRepository.save({author: user, date: createPostDto.date, text: 
   createPostDto.text,photos:photos});
  }
 类似资料:
  • publisher实例包含以下javascript文件: /etc/clientlibs/花岗岩/jquery.min.js /etc/clientlibs/花岗岩/utils.min.js /etc/clientlibs/granite/jQuery/granite.min.js /etc/clientlibs/Foundation/main.min.js /etc/clientlibs/gra

  • 我怎么可能有一个递归布尔方法来检查它是否包含BAB。我有这个,但我想做它递归。

  • 如何创建包含ArrayList的二维数组?比如:

  • 尝试获取父实体(Msg)的实体,其中父PK (msg_id)是子实体中的FK时,尝试保持子实体(MsgRetry)时出错。 错误,如:org.hibernate.id.IdentifierGenerationException:试图从null一对一属性分配id 父实体,不需要知道子实体(至少我认为它不需要知道)。一旦子实体被持久化,我就会尝试也持久化父实体。我可以通过在子实体中没有父实体并调用关联

  • 我的项目基于springboot、Thymeleaf、mysql、html和Jquery。 场景我的场景是使用Thyemeleaf并点击Spring boot@RestController发布EntSetCharges数据列表。以前我处理过这个错误错误错误1:错误2:现在又出现了一个错误 2017-11-22 14:58:19.717错误1420---[nio-8080-exec-1]o. a.

  • 问题内容: 我从使用方法获得像素。像素存储在名为的数组中。在对数据数组进行一些操作之后,我需要再次创建一个,以便可以将其传递到一个模块,该模块将显示来自此数据数组的修改后的图像,但我对此感到困惑。 问题答案: 然后再次设置像素。 PS:如评论中所述,请使用@TacticalCoder的答案