Database/TypeORM

TypeORM의 Entity

wam 2024. 7. 29. 23:48

 

TypeORM Entities

  • 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;
}