Typeorm一对一双向保存数据

问题描述

你好,我有以下关系:

1名员工可以拥有一个用户

我的用户实体:

@Entity({ name: 'users' })
export default class User {
  constructor(isActive: boolean,login: string,password: string) {
    this.isActive = isActive;
    this.login = login;
    this.password = password;
  }
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @Column({ name: 'login',nullable: false })
  login: string;

  @Column({ nullable: false })
  password: string;

  @Column({ name: 'is_active',nullable: true,default: false })
  isActive: boolean;

  @OneToOne(() => Employee,(employee: Employee) => employee.user)
  employee: Employee;

  @CreateDateColumn({ name: 'created_at' })
  createdAt: Date;

  @CreateDateColumn({ name: 'updated_at' })
  UpdatedAt: Date;

  @BeforeInsert()
  async beforeInsert() {
    this.password = await bcrypt.hash(this.password,bcrypt.genSaltSync(10));
  }
}

我的员工实体:

@Entity({ name: 'employees' })
@Index(['matricula'],{ unique: true })
export default class Employee {
  constructor(firstName: string,lastName: string) {
    this.firstName = firstName;
    this.lastName = lastName;
  }
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @Column({ name: 'matricula',nullable: false })
  matricula: string;

  @Column({ name: 'first_name',nullable: false })
  firstName: string;

  @Column({ name: 'last_name',nullable: false })
  lastName: string;

  @Column({ type: 'string',name: 'user_id',nullable: true })
  user_id: string;

  @Column()
  departament_id: string;

  @OneToOne(
    () => Departament,(departament: Departament) => departament.manager,)
  @ManyToOne(
    () => Departament,(departament: Departament) => departament.employees,)
  @JoinColumn({ name: 'departament_id' })
  departament: Departament;

  @OneToOne(() => User,(user: User) => user.employee)
  @JoinColumn({ name: 'user_id' })
  user: User;

  @CreateDateColumn({ name: 'created_at' })
  createdAt: Date;

  @CreateDateColumn({ name: 'updated_at' })
  UpdatedAt: Date;
}

这是我用来添加有用户或没有用户的新员工的功能:

  public async create(data: IEmployee): Promise<Employee> {
    const employee = await this.ormRepository.create({
      matricula: data.matricula,firstName: data.first_name,lastName: data.last_name,user: data.user,departament_id: data.departament_id,});
    await this.ormRepository.save(employee);
    return employee;
  }

但是当我要兑现承诺时,尝试使用时会出错:

等待this.ormRepository.save(员工);

并收到此错误:

UpdateValuesMissingError:无法执行更新查询,因为更新 值未定义。调用“ qb.set(...)”方法以指定更新 值。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...