TypeORM
@OneToOne
1. @OneToOne 과 @JoinColumn은 무조건 같이 있어야 함 필수
2. 하나의 엔티티에만 선언해 주면 됨
3. @JoinColumn을 설정한 컬럼은 외래키
@OneToMany, @ManyToOne
1. 보편적으로 양방향 관계로 많이 작성
2. OneToMany를 선언 한 곳에 외래키가 생기기 때문에 @JoinColumn을 생략 가능
3. options nullable: true 지정 시 테이블 생성 될 시 null 값 가능
4. @ManyToOne 의 반대편 @OneToMany 쪽에서는 필요치 않다면 관계 설정 안해도 됨
@JoinColumn
1. name: 참조열의 이름을 지정, referencedColumnName: 참조 할 열의 이름을 지정
2. 지정하게 되면 id 대신 다른키를 참조 가능(referencedColumnName)
@ManyToMany
1. 관계 한쪽에 @JoinTable 선언이 필요하다
@JoinTable
1. @ManyToMany 관계에선 JoinTable을 사용 @JoinColumn처럼 비슷하게 사용 가능
CasCade
1. save 호출을 한번만 해도 관계를 저장 할 수 있음
Select
1. Eager 사용시 로드할때 모든 관계에 대한 데이터를 자동으로 가져 옴
2. relations 사용 시 관계와 함게 데이터를 로드 (양방향 관계에서만 가능)
N + 1
1. eager, lazy 등의 자동 조회 옵션을 사용하지 말고 join 해주면 됨
2. 쿼리빌더 사용 ( 직접적으로 쿼리 만들어 조인처리 )
3. find 메서드에 relations 사용
@OneToOne
1. @OneToOne 과 @JoinColumn은 무조건 같이 있어야 함 필수
2. 하나의 엔티티에만 선언해 주면 됨
3. @JoinColumn을 설정한 컬럼은 외래키
@OneToMany, @ManyToOne
1. 보편적으로 양방향 관계로 많이 작성
2. OneToMany를 선언 한 곳에 외래키가 생기기 때문에 @JoinColumn을 생략 가능
3. options nullable: true 지정 시 테이블 생성 될 시 null 값 가능
4. @ManyToOne 의 반대편 @OneToMany 쪽에서는 필요치 않다면 관계 설정 안해도 됨
@JoinColumn
1. name: 참조열의 이름을 지정, referencedColumnName: 참조 할 열의 이름을 지정
2. 지정하게 되면 id 대신 다른키를 참조 가능(referencedColumnName)
@ManyToMany
1. 관계 한쪽에 @JoinTable 선언이 필요하다
@JoinTable
1. @ManyToMany 관계에선 JoinTable을 사용 @JoinColumn처럼 비슷하게 사용 가능
CasCade
1. save 호출을 한번만 해도 관계를 저장 할 수 있음
Select
1. Eager 사용시 로드할때 모든 관계에 대한 데이터를 자동으로 가져 옴
2. relations 사용 시 관계와 함게 데이터를 로드 (양방향 관계에서만 가능)
N + 1
1. eager, lazy 등의 자동 조회 옵션을 사용하지 말고 join 해주면 됨
2. 쿼리빌더 사용 ( 직접적으로 쿼리 만들어 조인처리 )
3. find 메서드에 relations 사용
// 배열인지 확인
Array.isArray()
// 동등 비교
Equal()
// 객체 병합
Object.assign()
// 객체 특정값 누적 적산
reduce()