如何解决如何使用 TypeORM 进行正确的多对一/一对多文档中的示例在我的情况下不起作用
我一直在为 TypeORM 多对一/一对多而苦苦挣扎。我遵循了这方面的文档,但它不起作用。使用 postgresql、TS 和 type-graphql。
这是代码(没有与问题相关的导入和部分): 实体成绩
@ObjectType()
@Entity()
export class Grades extends BaseEntity {
@Field()
@PrimaryGeneratedColumn()
id!: number;
@OnetoMany(() => User,(user) => user.id)
users: User[];
[...]
}
实体用户
@ObjectType()
@Entity()
export class User extends BaseEntity {
@Field()
@PrimaryGeneratedColumn()
id!: number;
@ManyToOne(() => Grades,(grades) => grades.users)
grades: Grades;
}
所以我的成绩可以有很多用户,而用户只能有一个成绩。可以创建用户、创建等级并将等级分配给用户(它存储在列 gradesId 中)。当我尝试与分配给他们的用户加入成绩时,问题就开始了:
resolvers.ts:
@Query(() => [Grades],{ nullable: true })
async grades(
): Promise<Grades[]>{
return Grades.find({relations: ["users"]})
};
当我运行查询时,我得到:
"TypeError: Cannot read property 'joinColumns' of undefined",
这是在 pgcli 中的样子
我在这里遗漏了什么?
解决方法
更改您的成绩实体的关系,如下所示:
@OneToMany(() => User,(user) => user.grades)
users: User[];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。