Active Record 패턴
Active Record
패턴은 모델 자체 내에서 모든 쿼리 메서드를 정의하고 모델의 메서드를 통해 데이터를 조회, 삽입, 삭제등을 할 수 있습니다. 따라서, SQL
을 사용하지 않고도 모델 내에서 데이터를 조작하는 다양한 메서드를 제공합니다.
TypeORM 에서 사용하기
TypeORM
에서는 Active Record
패턴과 DataMapper
패턴 두가지 모두 사용할 수 있습니다. 이중 Active Record
패턴을 사용하는 방법에 대해 알아보려합니다.
TypeORM
에서 Active Record
패턴을 사용하려면 반드시 Active Record
를 사용하려는 Entity
클래스는 BaseEntity
클래스를 상속받아야합니다. BaseEntity
는 Entity
를 사용하는 다양한 메서드들을 제공합니다. 또한 BaseEntity
는 Repository
의 대부분의 메서드들을 가지고 있기때문에 Active Record Entity
를 사용하면서 대부분 Repository
나 EntityManager
를 사용할 필요가 없습니다.
예시
1 | import {Entity, PrimaryGeneratedColumn, Column, BaseEntity} from "typeorm"; |
Active Record
의 예시를 보여드리기 위해 User
엔티티에서 BaseEntity
클래스를 상속받습니다.
1 | // Active Record 엔티티를 저장하는 방법 - INSERT |
위에서 말한 것과 같이 모델 자체내의 메서드들을 통해 SQL
을 사용하지 않고 데이터를 조작할 수 있습니다.
BaseEntity 메서드 소개
BaseEntity
클래스는 위 예시에서 사용한 save()
, find()
, findOne()
, remove()
외에도 더 많은 update()
, count()
등의 메서드가 더 있습니다. 더 많은 메서드를 알고 싶다면 여기를 확인해주세요.