TypeORM 不更新 MaterializedPath

Jir*_*vec 6 sqlite node.js materialized-path-pattern typeorm

我正在尝试使用 TypeORM 更新 SQLite3 数据库中的具体化路径。文件夹表(我正在更新)有parent 和parentId 列。当我更新父列时,parentId 列将更新,但 mpath 列不会更新。

我尝试使用 getRepository() 和 getTreeRepository() 进行更新。

我不太确定还要添加什么,请参阅下面所附的模型和更新方法。

模型

@Entity()
@Tree('materialized-path')
export class Folder {

  @PrimaryGeneratedColumn()
  id: number;

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

  @TreeParent()
  parent: Folder;

  @TreeChildren()
  children: Folder[];

  @Column({
    nullable: true
  })
  parentId: number;

Run Code Online (Sandbox Code Playgroud)

更新

await connection.getTreeRepository<Folder>(Folder).update(id, {
  parent: await connection.getRepository<Folder>(Folder).findOne(parentId)
});
Run Code Online (Sandbox Code Playgroud)

小智 0

我也尝试过更新功能,但不起作用。但保存功能还是可以的。

允许通过存储库中的保存功能更新和删除树实体关系。(参考: https: //github.com/typeorm/typeorm/pull/7156

当您使用 save 保存实体时,它总是尝试在数据库中查找具有给定实体 id 的实体。如果找到 id/ids,它将更新数据库中的这一行。如果没有包含 id/ids 的行,则会插入新行。(参考: https: //typeorm.io/#/entities