【发布时间】:2023-01-30 02:26:08
【问题描述】:
我是 TypeORM 的新手。我正在使用 MySQL DB 和 ExpressJS 应用程序。
我有 2 个实体:用户和客户。它们之间是一对一的关系。客户有外键。 保存客户端时出现以下错误:
无法执行更新查询,因为未定义更新值。调用“qb.set(...)”方法来指定更新值
用户实体:
export class User extends BaseEntity { @PrimaryGeneratedColumn() id: number @Column() role: string @Column() email: string @Column() password: string @Column({ default: '' }) avatar: string @Column() firstName: string @Column() lastName: string @Column() fullName: string @Column({ default: '' }) phone: string @Column({ type: 'text', nullable: true }) description: string @Column({ nullable: true }) age: number @OneToOne(_type => Freelancer, freelancer => freelancer.user, { nullable: true }) freelancer: Freelancer @OneToOne(_type => Client, client => client.user, { nullable: true }) client: Client }客户实体:
@Entity() export class Client extends BaseEntity { @PrimaryGeneratedColumn() id: number @Column() companyName: string @ManyToOne(_type => Position, position => position.clients) position: Position @OneToOne(_type => ClientReview, clientReview => clientReview.client, { nullable: true }) @JoinColumn() review: ClientReview @OneToMany(_type => Project, project => project.client, { nullable: true }) projects: Project[] @OneToOne(_type => User, user => user.client) @JoinColumn() user: User }auth.service 中的代码,我在其中保存客户端。只是概述:
const user = userRepository.create({ email, password: hashedPassword, role, description, firstName, lastName, fullName: `${firstName} ${lastName}`, phone }) const clientRepository = getRepository(Client) const positionRepository = getRepository(Position) const positionEntity = await positionRepository.findOne({ id: position.id }) const client = clientRepository.create({ companyName, position: positionEntity, user }) await userRepository.save(user) await clientRepository.save(client)问题出在
Client entity的user column,当我删除它时,一切正常,但客户端和用户是分开保存的,显然彼此之间没有任何关系。所以,我的问题是我做错了什么以及我应该如何解决? 预先感谢您的回答
【问题讨论】:
标签: mysql typescript express relational-database typeorm