如何修复 EntitySchema 和 Graphql 中的“无法读取未定义的 属性 'joinColumns'”错误
How to fix 'Cannot read property 'joinColumns' of undefined' error in EntitySchema and Graphql
我想在用户与关键字 Table 中建立一对多关系,在关键字 Table 中建立多对一关系。
我不使用 TypeScript,因为我使用了 Typeorm 的 EntitySchema。
这是我的实体:
import { EntitySchema } from 'typeorm';
export default new EntitySchema({
name: 'User',
columns: {
id: {
primary: true,
type: Number,
generated: true,
},
firstname: {
type: 'varchar',
},
lastname: {
type: 'varchar',
},
email: {
type: 'varchar',
default: null,
},
auth: {
type: 'varchar',
nullable: true,
},
},
relations: {
keywords: {
target: 'Keyword',
type: 'one-to-many',
},
},
});
import { EntitySchema } from 'typeorm';
export default new EntitySchema({
name: 'Keyword',
columns: {
id: {
primary: true,
type: Number,
generated: true,
},
name: {
type: 'varchar',
},
created_at: {
type: Date,
},
},
relations: {
user: {
target: 'User',
type: 'many-to-one',
},
},
});
GraphQL 的错误"Cannot read property 'joinColumns' of undefined"
您的 EntitySchema 中缺少两件事:您需要指定 JoinColumn 和 OneToMany 关系的反面。所以这应该有效:
export default new EntitySchema({
name: 'User',
...
relations: {
keywords: {
target: 'Keyword',
type: 'one-to-many',
inverseSide: 'user',
},
},
});
export default new EntitySchema({
name: 'Keyword',
...
relations: {
user: {
target: 'User',
type: 'many-to-one',
joinColumn: true,
},
},
});
我想在用户与关键字 Table 中建立一对多关系,在关键字 Table 中建立多对一关系。
我不使用 TypeScript,因为我使用了 Typeorm 的 EntitySchema。
这是我的实体:
import { EntitySchema } from 'typeorm';
export default new EntitySchema({
name: 'User',
columns: {
id: {
primary: true,
type: Number,
generated: true,
},
firstname: {
type: 'varchar',
},
lastname: {
type: 'varchar',
},
email: {
type: 'varchar',
default: null,
},
auth: {
type: 'varchar',
nullable: true,
},
},
relations: {
keywords: {
target: 'Keyword',
type: 'one-to-many',
},
},
});
import { EntitySchema } from 'typeorm';
export default new EntitySchema({
name: 'Keyword',
columns: {
id: {
primary: true,
type: Number,
generated: true,
},
name: {
type: 'varchar',
},
created_at: {
type: Date,
},
},
relations: {
user: {
target: 'User',
type: 'many-to-one',
},
},
});
GraphQL 的错误"Cannot read property 'joinColumns' of undefined"
您的 EntitySchema 中缺少两件事:您需要指定 JoinColumn 和 OneToMany 关系的反面。所以这应该有效:
export default new EntitySchema({
name: 'User',
...
relations: {
keywords: {
target: 'Keyword',
type: 'one-to-many',
inverseSide: 'user',
},
},
});
export default new EntitySchema({
name: 'Keyword',
...
relations: {
user: {
target: 'User',
type: 'many-to-one',
joinColumn: true,
},
},
});