- Entities - 데이터 베이스에 저장되는 데이터의 형태를 보여주는 모델 같은 것이다.
- DB table (Mongo DB를 사용하는 경우 collection)에 매핑
- GraphQL에서 사용한 Entity와 비슷하다.
graphql의 Entity
- @objectType() 자동으로 스키마를 빌드하기 위해 사용
TypeORM의 Entity
- TypeORM의 Entity는 DB에 저장을 해줌
- 데이터베이스 테이블을 객체지향적으로 표현하는 개념
- Entity는 데이터베이스 테이블의 구조를 정의하고 테이블의 각 열은 Entity 클래스의 속성으로 표현된다.
- Entity 를 통해 TypeORM은 데이터베이스 테이블을 생성하고 관리한다.
- SQL 쿼리 없이도 데이터베이스와 상호 작용할 수 있다.
- 엔터티를 사용하면 데이터베이스 레코드를 객체로 다루기 때문에 코드의 가독성과 유지보수성이 향상된다.
- 즉, TypeORM에서 엔터티는 데이터베이스 테이블을 객체로 추상화한 것이다.
- 데이터베이스와의 상호 작용을 객체지향적으로 처리할 수 있게 해준다.
import { Field, ObjectType } from "@nestjs/graphql";
import { Column, Entity } from "typeorm";
@ObjectType() // graphql 위한 것
@Entity() // typeORM 위한것
export class Restaurant {
@PrimaryGeneratedColumn()
@Field(() => Number)
id: number;
@Field(() => String) // graphql 위한 것
@Column() // typeORM 위한것
name: string;
@Field(() => Boolean)
@Column()
isVegan: boolean;
@Field(() => String)
@Column()
address: string;
@Field(() => String)
@Column()
ownersName: string;
}
'Database > TypeORM' 카테고리의 다른 글
Relations 정리 OneToMany, ManyToOne (0) | 2024.08.02 |
---|---|
EntityRepository - deprecated 되었다. (0) | 2024.08.02 |
TypeORM에서 제공하는 특별한 데코레이터 , 엔티티의 생성 및 수정 일자를 자동으로 관리 (0) | 2024.07.29 |
TypeORM의 Listener (0) | 2024.07.29 |
TypeORM의 데이터 접근 패턴 - Data Mapper, Active Record (0) | 2024.07.29 |