当我尝试保存时-关系列上为空
我如何保存此关系数据?
实体:
@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;
}
我无法解决这个问题,谁可以帮助解决这个问题?
答案 0 :(得分:0)
我认为这与您的实体无关。您的查询很有可能出现问题。保存关系时,不会自动从存储库中查询它们。
看看这个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'],
});
}
}
现在,如果已分配用户,则应该使用关系用户来获取您的项目实体。希望这可以帮助!