본문 바로가기
프로그래밍/TypeORM

[TypeORM] Delete using Query Builder

by YuminK 2023. 9. 2.

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

댓글