问题描述
我正在尝试使用TypeORM和TypeGraphQL创建双向OneToOne关系。我有两个实体Account.ts
和Details.ts
。
现在,我可以在该帐户的上下文中创建“详细信息”,它会从上下文中成功填充“帐户ID”。
但是,在“我的帐户”表中,detailsId字段(外键)保持为空,并且不会更新。因此,我无法在上下文中查询详细信息。
这是我的Account.ts
实体
@ObjectType()
@Entity()
export class Account extends BaseEntity {
@Field()
@PrimaryGeneratedColumn()
id: number;
@OneToOne(() => Details,(detail) => detail.user,{cascade: true,eager: true})
@Field(() => Details)
@JoinColumn()
detail: Details;
}
这是我的Details.ts
实体。
@ObjectType()
@Entity()
export class Details extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Field()
@Column()
title: string;
@Field()
@Column()
userId: number;
@OneToOne(() => Account,(user: Account) => user.detail)
user: Account;
}
这是我的解析器。
@Mutation((_returns) => Details)
@UseMiddleware(isAuth)
async addDetails(
@Arg("title") title: string,@Ctx() { req }: MyContext
): Promise<Details> {
const details = this.detailsRepository.create({
title,userId: req.session.userId,});
return await this.detailsRepository.save(details);
}
我认为我定义的实体错误,否则Account.ts
表中将提供外键。
非常感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)