我想在用户与关键字表之间建立一对多关系,在关键字表中建立多对一关系。
我不使用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的错误“无法读取未定义的属性'joinColumns'”
答案 0 :(得分:1)
在EntitySchema中缺少两件事:您需要为OneToMany关系指定JoinColumn和反面。所以这应该工作:
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,
},
},
});