【问题标题】:TypeORM @JoinTable() how to specify custom join columns?TypeORM @JoinTable() 如何指定自定义连接列?
【发布时间】:2022-07-07 04:48:28
【问题描述】:

这是我的示例数据模型

我已经声明了以下类:

@Entity({
  name: 'user'
})
export class User {
  @Column({ type: 'int4' })
  @PrimaryColumn()
  userid: number

  @Column({name: 'name', type: 'varchar', length: 30})
  name: string

  @Column({name: 'age', type: 'int2'})
  age: number

  @ManyToMany(() => Department, (department)=> department.users)
  @JoinTable({
    name: 'department_user'
  })
  departments: Department[]
}

@Entity({ name: 'department' })
export class Department {

  @Column({ type: 'int2' })
  @PrimaryColumn()
  departmentid: number

  @Column({type: 'varchar', length: 50})
  title: string

  @Column({type:'text'})
  notes: string

  @ManyToMany(() => User, (user)=> user.departments)
  @JoinTable({ name: 'department_user' })
  users: User[]  
}

每当我运行该应用程序时,它都会创建 departmentDepartmentIduserUserId 列,而不使用相应连接表中的列。如何告诉 typeorm 只使用连接表中预定义的连接列?

【问题讨论】:

    标签: typeorm


    【解决方案1】:

    您可以指定连接列名和反向连接列名。像这样的东西应该适合你:

    @ManyToMany(() => Department, (department)=> department.users)
    @JoinTable({ 
        name: 'department_user',
        joinColumn: { name: 'userid' },
        inverseJoinColumn: { name: 'departmentid' }
    })
    departments: Department[]
    

    【讨论】:

      猜你喜欢
      • 2021-08-05
      • 2019-07-20
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2020-08-18
      • 2019-02-10
      • 1970-01-01
      • 2019-12-15
      相关资源
      最近更新 更多