TypeOrm Test

TypeOrm을 사용하여 엔티티를 생성하고 관계를 설정해보는 것 까지 이번 포스팅에서 진행 해보도록 합니다.🤐

먼저 typeorm을 사용하기위해 서버를 구동해야 하는데… 간단하게 하려 했지만 기존에 하던 곳에서 하는게 가장 편하다고.. 저는 Nest서버에서 실행 하기로 했습니다..
도저히 다른곳에서 시작하기가…

NestJs 와 TypeOrm 연동 포스팅은 나중에 진행 하기로 하고 지금은 엔티티생성 관계 설정까지만!!!

먼저 User 엔티티를 만들어보도록 합니다. 최대한 간단하게 ㅎ

자세히 보기

TypeOrm Relation

TypeOrm Relation

TypeOrm 엔티티 파일을 만들어보고 관계를 설정 해보려 한다.
먼저 공식문서를 통해 관계 설정 방식에 대해 참고 하여 작성하였다..

Relations

  • 1 : 1 = @OneToOne
  • 1 : N = @OneToMany
  • N : 1 = @ManyToOne
  • N : N = @ManyToMany

OneToOne

서로 1 대 1로 관계를 맺는 모델에 사용한다.

  • 관계를 설정 할 모델의 타겟을 지정하여 연결이 가능하다.
  • 단방향 / 양방향 모두 가능하다.

OneToMany & ManyToOne

1 대 다, 다 대 1 관계를 맺는 모델에 사용한다.

  • OneToMany와 ManyToOne 은 반드시 함께 설정해야 한다.
  • @JoinColumn 옵션 생략이 가능하다. 이렇게 되면 ManyToOne 쪽에 foriegn Key가 생성된다.

ManyToMany

서로 다 대 다로 관계를 맺는 모델에 사용한다.

  • @JoinTable 옵션 사용이 필수적이다.

Relation Options

  • Cascade : 설정 시 두 테이블간의 영속성이 설정됨
  • JoinColumn : 참조 키 컬럼을 지정하여 생성 할 수 있다.
  • JoinTable : 다대다 관계의 중간 테이블을 생성한다.

참고문서
공식문서.

TypeOrm Entity

Create TypeOrm Entity

엔티티는 데이터베이스 테이블에 매핑되는 클래스 입니다. 새로운 클래스를 정의하고 @Entitiy() 표시로 엔티티를 생성할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";

@Entity()
export class User {

@PrimaryGeneratedColumn()
id: number;

@Column()
firstName: string;

@Column()
lastName: string;

@Column()
isActive: boolean;

}
자세히 보기