【问题标题】:Why joinColumns is undefined when trying to make a relation?为什么在尝试建立关系时未定义 joinColumns?
【发布时间】:2018-06-01 20:04:37
【问题描述】:

我在尝试创建具有关系的实体的新对象时收到 TypeError: Cannot read property 'joinColumns' of undefined at <...>/src/persistence/SubjectOperationExecutor.ts:282:47 错误。为什么会这样?

在一个实体中我有:

@Entity('users')
export class User extends WhateverEntity {
  @PrimaryGeneratedColumn('uuid')
  id: string

  @ManyToMany(type => Account, account => account.users, {
    cascadeInsert: true,
    cascadeUpdate: true,
  })
  @JoinTable()
  accounts: Account[]
}

第二个:

@OneToOne(type => User, user => user.id)
owner: User

@ManyToMany(type => User, user => user.accounts)
users: User[]

我这样保存(owner: Userusers: User[]:

const account = new Account()
account.owner = owner
account.users = users || []

return this.accountRepository.save(account)

即使我注释掉account.owner = owneraccount.users = users || [],它也不起作用。它保存帐户,但不建立关系。


附加信息:如果我在保存之前console.log account - 它确实有所有者和用户作为User 类的实例。


ownerusers 是数据库中已经存在的用户实体对象。

【问题讨论】:

    标签: typescript typeorm nestjs


    【解决方案1】:

    您可能忘记将 @JoinColumn() 装饰器放在您的 @OneToOne 关系上。 应该是这样的

    @OneToOne(type => User, user => user.id)
    @JoinColumn()
    owner: User
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-01
      相关资源
      最近更新 更多