스프링 공부 일지 - 기본 키 매핑
이전 블로그 👉👉
2023.02.16 - [스터디/스프링] - 스프링 공부 일지 - JPA 시작
스프링 공부 일지 - JPA 시작
이번에는 JPA 프로그래밍 기본편 강의를 들으면서 공부를 해보려고 한다!! 강의 링크 👉👉 https://www.inflearn.com/course/ORM-JPA-Basic/dashboard 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를
sleecode.tistory.com
오늘은 Mapping과 관련된 강의를 들었다!!
하지만 이전 실전 강의에서 많이 겹쳤던 내용이 있어서
중요해 보이는 까먹기 쉬운 것들을 정리해 봤다!!!
그건 바로
기본키 매핑이다!
Idenetity 전략
- em.persist() 시점에서 INSERT SQL을 실행하고 DB에서 PK 조회
- 영속성 컨텍스트에 넣으려면 ID값을 알아야하기 때문에 특수한 경우
Sequence 전략
- em.persist 할 때 DB에서 시퀀스의 다음 값을 받아와서 id 값으로 넣고 영속성 컨텍스트에 넣음
- 시퀀스(PK) 값만 얻고 commit 시점에 INSERT SQL 실행함 (예외 아님)
- 계속 next call 하면 성능 문제 생김 -> allocationSize를 설정
- initialValue = 1, allocationSize = 50
- 1부터 시작하고 50개씩 늘리겠다
- 시퀀스 생성 시에는 현재 값 1, 증가 값 50
- allocationSize 개수만큼 한 번에 가져와서 메모리에 가져다 두고 업데이트시키는 방식
call next value for member_seq 가 2번 불림
-> 50개씩 써야 하는 데 처음 호출한 것은 1이라서 1번 더 호출한 것
DB SEQ = 1 | MEMORY 1
DB SEQ = 51 | MEMORY 2
DB SEQ = 51 | MEMORY 3
Table 전략
- 키 생성 전용 테이블을 만들어서 하는 것
- allocationsSize 옵션 똑같이 있음
오늘은 여기까지
조큼 간단쓰하게 정리해 봤다!!!
실전 예제도 같이 진행했는데 실전에서 했던 예제와 비슷해서
블로그에 쓰진 않으려고 한다!!!
아무래도 다음 단계 강의를 먼저 듣고 왔기 때문에
좀 더 가벼운 느낌으로 개념을 확실히 하는 느낌으로 들을 수 있다!!
그럼 오늘은
안녕🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!