TypeORM と TypeGraphQL を使用して、双方向の OneToOne 関係を作成しようとしています。と の 2 つのエンティティがAccount.ts
ありDetails.ts
ます。
現在、アカウントのコンテキストで詳細を作成でき、コンテキストからアカウント ID を正常に入力できます。
ただし、私のアカウント テーブルでは、detailsId フィールド (外部キー) は null のままで、更新されません。したがって、コンテキストで詳細を照会することはできません。
これが私の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
テーブルで使用可能になります。
どんな助けでも大歓迎です。