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()등의 메서드가 더 있습니다. 더 많은 메서드를 알고 싶다면 여기를 확인해주세요.