I am trying to get soft deleted doc from postgreSQL
database using typeorm
find, findOne or query builder get/getMany
methods, but it always return undefined. Is there a way to get deleted value?
By the docs it should only set a timestamp for deletedAt
, and it definitely works, because I can update same record using update where from query builder.
I found out there is another solution. You can use the querybuilders .withDeleted()
method to also return soft deleted entities.
Example
const query = await this.manager
.getRepository(FolderEntity)
.withDeleted()
.createQueryBuilder('folder')
.leftJoinAndSelect('folder.subStatus', 'status')
.getMany()
Actually referring to the findOptions doc you can pass the withDeleted
boolean that will retrieve the soft deleted rows.
for example:
const result = await this.repo.find({ where: { id }, withDeleted: true })
After more searching I found that only solution is to use raw sql query for that as it is shown in typeorm docs at the query block.
const deletedEntity = await connection
.getRepository(Entity)
.query(`SELECT * FROM Entity where id = '${deletedEntityId}'`)
This query returns values with deletedAt timestamp.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With