Graphql 插入TypeForm后创建相关实体
我有两个实体:Graphql 插入TypeForm后创建相关实体,graphql,typeorm,Graphql,Typeorm,我有两个实体: 使用者 宣传片 我想创建一个促销实体, 每次创建/插入用户实体时,它都与用户实体具有oneToOne关系 我是打字新手,所以我不确定实现这一点的最佳方法是什么 我尝试过使用订阅服务器,但似乎无法实现所需的功能。 另一种选择是在GraphQL解析器中执行此操作,但对我来说这似乎很混乱 尝试执行此操作时,最佳做法是什么?您可以使用完全类型化来保存所有必需的数据,但请确保已创建实体,且实体之间的连接正确: //宣传片 @Index() @OneToOne(() => User,
尝试执行此操作时,最佳做法是什么?您可以使用完全类型化来保存所有必需的数据,但请确保已创建实体,且实体之间的连接正确: //宣传片
@Index()
@OneToOne(() => User, user => user.promo)
@JoinColumn()
user: User
我已经将@JoinColumn添加到Promo中,希望Promo实体在表中有userId
//User.ts
@OneToOne(() => Promo, promo => promo.user)
promo: Promo
例如,在存储库中,您可以使用事务操作保存用户,并在保存此用户后立即使用其他所需的促销详细信息:
saveUser(user: User) {
return getManager().transaction(async (manager) => {
const result = await manager
.getRepository(User)
.createQueryBuilder()
.insert()
.values(user)
.execute()
// check on result emptiness
const createdUser = await manager
.getRepository(User)
.createQueryBuilder()
.where('id=:id',{id: result.identifiers[0].id})
.getOne()
await manager
.getRepository(Promo)
.createQueryBuilder()
.insert()
.values({user: createdUser})
.execute()
})
}
它将保存在第一个用户的一个事务中,并在与该用户进行促销后保存