https://orkhan.gitbook.io/typeorm/docs/delete-query-builder
QueryBuilder를 이용한 삭제
1. Delete (물리삭제) - DB 상의 삭제
2. Soft-Delete (논리 삭제) - 삭제 여부 컬럼 변경
3. Restore-Soft-Delete
Delete
QueryBuilder를 사용하여 Delete 쿼리를 작성할 수 있다.
await myDataSource
.createQueryBuilder('users')
.delete()
.from(User)
.where("id = :id", { id: 1 })
.execute()
성능의 측면에서 가장 효과적으로 데이터를 삭제하는 방식이다.
Soft-Delete
QueryBuilder에 Soft-Delete를 적용한다.
await.dataSource.getRepository(Entity).createQueryBuilder().softDelete()
예시)
await myDataSource
.createQueryBuilder('users')
.softDelete()
.where("id = :id", { id: 1 })
.execute();
Restore-Soft-Delete
대안으로, restore 메소드를 사용하여 soft deleted 상태 row를 변경할 수 있다.
await dataSource.getRepository(Entity).createQueryBuilder().restore()
예시)
await myDataSource
.createQueryBuilder('users')
.restore()
.where("id = :id", { id: 1 })
.execute();
'프로그래밍 > TypeORM' 카테고리의 다른 글
[TypeORM] Find Options - Basic Options (0) | 2023.09.02 |
---|---|
[TypeORM] EntityManager API (0) | 2023.09.02 |
[TypeORM] Insert using Query Builder (0) | 2023.09.02 |
[TypeORM] Transactions (0) | 2023.08.31 |
[TypeORM] Caching queries (0) | 2023.08.31 |
댓글