Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 보안 #이슈
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #ci #cd
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #aop #관점지향프로그래밍 #유지보수
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #대용량트래픽 #처리방법 #캐싱 #코드최적화 #db최적화 #트래픽 #로드밸런서
- java5기
- 스파르타 코딩클럽 #내배캠 #최종프로젝트 #4개월삭제 #국비지원 #자바
- ci/cd파이프라인
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #get방식 #post방식 #http프로토콜 #클라이언트 #백엔드 #api
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #소셜로그인 #네이버 #기능구현 #vue.js #spring boot #네이버로그인 #연동하기
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #트랜잭션전파 #transaction
- 챌린저스 #bod
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #springmvc패턴 #model #view #controller
- 스파르타 코딩클럽 #내배캠 #최종프로젝트 #로그인 #인증인가 #jwt? #토큰인증 #액세스토큰 #리프레시토큰 #쿠키 #파싱 #서명키의 중요성 #security context holder
- 인가 #
- 프로세스 #CPU #시공유 #커널
- 쓰레드 #쓰레드풀 #프로세스
- 비트 #바이트 #이진수
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- spring security #jwt 토큰 #json web token #token #직렬화 #인증
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- 스프링 #백엔드 #자바
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #최종프로젝트 #aws s3 #프로필 이미지 수정 #자동삭제
- 스파르타 코딩클럽 #인메모리db #h2 #연동이슈 #문제해결 #방법 #spring security #header #
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #ci #ioc #의존성
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #tdd #테스트 주도개발 #테스트코드 #유닛테스트
Archives
- Today
- Total
요리사에서 IT개발자로
스파르타 부트캠프 Spring Master 3강 Entity @OneToMany 단방향, 양방향 정리 본문
@OneToMany = 1 대 N 관계
단방향 관계에서
외래키를 관리하는 주인은 음식 Entity이지만
실제 외래키는 고객 Entity가 갖고있다.
1:N에서 N관계의 테이블이 외래키를 가질 수 있기에
외래키는 N관계 users테이블에 외래키 컬럼을
만들어 추가하지만
외래 키의 주인인 음식Entity를 통해 관리한다.
간단히 말하자면
음식(외래키)은 하나인데 고객이 여러명이 주문을했다면(N)
음식하나에 고객주문 여러명의 정보를 출력할 수 있다.
1 : N 관계
그래서 Food가 외래키(1)이라면
실제 주문 1의 외래키는 Food테이블에서 관리하고
users에서 외래키를 담당하는것은
고객 100명이면 외래키 100개까지 있는것이다.
하지만
고객정보 users(N)에서 개개인을 하나씩 조회하는것보다
Food는 한가지이기에
Food의 외래키로 User를 List화 시켜
출력을 하는것이다.
본론은
Food(1)가 외래키 고객(N)을 관리한다
@Table(name = "food")
public class Food {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private double price;
@OneToMany
@JoinColumn(name = "food_id") // users 테이블에 food_id 컬럼
private List<User> userList = new ArrayList<>();
}
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
}
양방향 관계
1 대 N관계에서는 일반적 양방향 관계가 존재하지 않는다
1대 N관계에서 양방향 관계를 맺으려면
음식Entity를 외래키의 주인으로 정해주기 위해서
고객 entity에서 mappedBy옵션을 사용해야 하지만
결국 @ManyToOne과 @OneToMany 에너테이션은 mappedBy속성을 제공하지 않는다.
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@ManyToOne
@JoinColumn(name = "food_id", insertable = false, updatable = false)
private Food food;
}
N관계의 Entity인 고객 Entity에서
@JoinColum의
insertable과 updatable 옵션을 false로 설정하여
양쪽으로 JOIN 설정을하면 양방향 처럼 사용할 수 있다.
왜냐면 주문할 음식은 하나인데 양방향으로 진행한다면
주문정보가 업데이트 된다면 ?
고객정보안에있는 음식주문정보를 100개 다 수정해야된다.
반응형
'Spring' 카테고리의 다른 글
스파르타 부트캠프 Spring Master 3강 지연로딩과 즉시로딩 (0) | 2024.05.29 |
---|---|
스파르타 부트캠프 Spring Master 3강 Entity @ManyToMany와 중간테이블 (0) | 2024.05.28 |
스파르타 부트캠프 Spring Master 3강 Entity @ManyToOne 단방향, 양방향 정리 (0) | 2024.05.28 |
스파르타 부트캠프 Spring Master 3강 Entity @OneToOne 단방향, 양방향 정리 (0) | 2024.05.28 |
스파르타 부트캠프 Spring Master 3강 Spring Security 로그인 (0) | 2024.05.27 |