Database/TypeORM

Relations 정리 OneToMany, ManyToOne

wam 2024. 8. 2. 20:39

 

@ManyToOne

import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from "typeorm"
import { User } from "./User"

@Entity()
export class Photo {
    @PrimaryGeneratedColumn()
    id: number

    @Column()
    url: string

    @ManyToOne(() => User, (user) => user.photos)
}
  • 여러 개의 자식 엔티티가 하나의 부모 엔티티와 연결될 때 사용
  • ManyToOne 관계에만 집중하고 싶다면 관련 enity에 OneToMany 없이 정의할 수 있다.

 

 

@OneToMany

import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from "typeorm"
import { Photo } from "./Photo"

@Entity()
export class User {
    @PrimaryGeneratedColumn()
    id: number

    @Column()
    name: string

    @OneToMany(() => Photo, (photo) => photo.user)
    photos: Photo[]
}
  • 하나의 부모 엔티티가 여러 개의 자식 엔티티와 연결될 때 사용
  • OneToMany는 ManyToOne 없이 존재 할 수 없다.