일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- DT_TOOLCHAIN_DIR cannot be used
- invite user for supabase project
- 주 4일 근무제 log
- Firebase authentication android apple login
- supabase edge function deploy error supabaseurl is required
- supabase storage public url not working
- 로컬 서버 접속
- 소개팅앱 만들기 flutter
- stable-diffusion-webui local 네트워크에서 접속
- supabase edge function deploy error
- Spring google SMTP settings
- Spring LocalDateTime response array
- Stomp user connection event
- no such module '__ObjC'
- Android apple login 인증서 설정
- Spring boot swagger blank screen
- 소개팅앱 만들기
- Firebase authentication android apple login setting
- stable-diffusion-webui local 접속
- Firebase authentication apple login
- Supabase edge function insert data
- Android apple login identifier
- 주 4일 근무제 경험담
- 소개팅앱 만들기 stomp
- Firebase authentication apple login 최신
- supabase storage feature not enabled for this tenant
- Stomp socket connection event
- Supabase edge function
- Android apple login
- 주 4일 근무제
Archives
- Today
- Total
꿀맛코딩
값 타입 컬렉션 본문
- 값 타입을 하나 이상 저장할 때 사용
- @ElementCollection, @CollectionTable 사용
- 데이터베이스는 컬렉션을 같은 테이블에 저장할 수 없다.
- 컬렉션을 저장하기 위한 별도의 테이블이 필요함
값 타입 컬렉션의 제약사항
- 값 타입은 엔티티와 다르게 식별자 개념이 없다.
- 값은 변경하면 추적이 어렵다.
- 값 타입 컬렉션에 변경 사항이 발생하면, 주인 엔티티와 연관된 모든 데이터를 삭제하고, 값 타입 컬렉션에 있는 현재 값을 모두 다시 저장한다.
- 값 타입 컬렉션을 매핑하는 테이블은 모든 컬럼을 묶어서 기본키를 구성해야함 : null입력 x, 중복 저장 x
값 타입 컬렉션 대안
- 실무에서는 상황에 따라 값 타입 컬렉션 대신에 일대다 관계를 고려
- 일대다 관계를 위한 엔티티를 만들고, 여기에서 값 타입을 사용
- 영속성 전이 + 고아 객체 제거를 사용해서 값 타입 컬력션 처럼 사용
정리
엔티티 타입의 특징
- 식별자O
- 생명 주기 관리
- 공유
값 타입의 특징
- 식발자x
- 생명주기를 엔티티에 의존
- 공유하지 않는 것이 안전(복사해서 사용)
- 불변 객체로 만드는 것이 안전
값 타입은 정말 값 타입이라 판단 될 때만 사용
엔티티와 값 타입을 혼동해서 엔티티를 값 타입으로 만들면 안됨
식별자가 필요하고, 지속해서 값을 추적, 변경해야한다면 그것은 값 타입이 아닌 엔티티
값 타입 매핑
반응형
'공부방 > JPA' 카테고리의 다른 글
값 타입과 불변 객체 (1) | 2023.03.21 |
---|---|
임베디드 타입 (0) | 2023.03.21 |
프록시 (0) | 2023.03.10 |
MappedSuperclass (0) | 2023.03.05 |
고급 매핑 (0) | 2023.03.04 |
Comments