Pesquisa de site

node.js - Como posso obter uma entidade excluída logicamente do typeorm no PostgreSQL?


Estou tentando obter um documento excluído suavemente do banco de dados postgreSQL usando os métodos find, findOne ou query builder get/getMany do typeorm, mas ele sempre retorna indefinido. Existe uma maneira de obter o valor excluído?

Pelos documentos, isso deveria apenas definir um timestamp para deletedAt, e definitivamente funciona, porque posso atualizar o mesmo registro usando update where do query builder.

Resposta #1

Descobri que existe outra solução. Você pode usar o método .withDeleted() do querybuilder para também retornar entidades soft deleted.

Exemplo

 const query = await this.manager
        .getRepository(FolderEntity)
        .withDeleted() 
        .createQueryBuilder('folder')
        .leftJoinAndSelect('folder.subStatus', 'status')
        .getMany()

Resposta #2

Na verdade, referindo-se ao documento findOptions, você pode passar o booleano withDeleted que irá recuperar as linhas soft deleted.

por exemplo:

const result = await this.repo.find({ where: { id }, withDeleted: true })

Artigos relacionados