gpt4 book ai didi

node.js - TypeORM:保存时无法读取未定义的属性 'inverseJoinColumns'

转载 作者:太空宇宙 更新时间:2023-11-03 23:01:11 24 4
gpt4 key购买 nike

用例:如果数据库中尚未创建用户,则创建它 - 如果用户已经存在,则更新它。

这个逻辑是有效的。由于TypeORM的.save()会更新实体或在不可用时更新实体,所以我想使用此方法。

我的问题:创建作品但不更新。执行此操作时,它会从 RelationIdLoader 抛出此错误:

this.userRepository.save(user); // user = newly created or updated entity

TypeError: Cannot read property 'inverseJoinColumns' of undefined

更新后的和创建的之间的唯一区别是更新后的有一个 id 属性,它是一个 uuid/string。

更新

@PrimaryGeneratedColumn('uuid') public id: string;

... // some columns without relations

@OneToMany(type => Finding, finding => finding.reporter)
public reportedFindings: Finding[];

@OneToMany(type => Finding, finding => finding.responsible)
public responsibleFindings: Finding[];

@ManyToMany(type => DataCenter)
public dataCenterResponsiblities: DataCenter[];

@ManyToMany(type => Finding)
public informedFindings: Finding[];

最佳答案

正如 @pleerock 所指出的,所有 @ManyToMany 都必须在拥有方包含 @JoinTable 装饰器。

所以我的实际问题的具体解决方案如下:

@ManyToMany(type => DataCenter)
@JoinTable()
public dataCenterResponsiblities: DataCenter[];

@JoinTable()
@ManyToMany(type => Finding)
public informedFindings: Finding[];

This is actually well described in the docs.

关于node.js - TypeORM:保存时无法读取未定义的属性 'inverseJoinColumns',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47907196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com