如何添加关系数据?

How add relationship data?

当我尝试保存时 - 我在关系列上有 null

如何保存这个关系数据?

实体:

@Entity('project')
export class Project {
  @PrimaryGeneratedColumn()
  id: number;

  @Column('varchar')
  name: string;

  @Column('varchar')
  description: string;

  @Column()
  createdAt: Date;

  @ManyToOne(type => User)
  @JoinColumn({ referencedColumnName: 'id' })
  user: User|number;
}

Dto:

export class CreateProjectDto {
  readonly id: number;
  readonly name: string;
  readonly description: string;
  readonly createdAt: Date;
  readonly user: User|number;
}

我无法解决这个问题,谁能帮忙解决这个问题?

我认为这不是您的实体的问题。您的查询很可能存在问题。保存关系时,不会自动从存储库中查询它们。

看看这个https://typeorm.io/#/undefined/loading-objects-with-their-relations

您会注意到有一个名为 relations 的键。这是您指定要加入用户的地方。例如

import {Injectable} from '@nestjs/common';
import {Repository} from 'typeorm';
import {InjectRepository} from '@nestjs/typeorm';
import Project from './project.entity';

@Injectable()
export class ProjectService {
  constructor(@InjectRepository(Project) private readonly projectRepository: Repository<Project>) {}

  async findOne(id: number): Promise<Project | null> {
    return await this.projectRepository.findOne({
      where: {
        id,
      },
      relations: ['user'],
    });
  }
}

如果已分配用户,这现在应该会获取具有关系用户的项目实体。希望这可以帮助!