JPA 값 타입
엔티티 타입
- @Entity로 정의하는 개체
- 데이터가 변해도 식별자로 지속해서 추적 가능
값 타입
-식별자가 없고 값만 있으므르 변경시 추적 불가 ex) String, int, Integer 등
값 타입의 종류
기본값 타입
- 자바 기본 타입(int, double)
- 래퍼 클래스(Integer, Long)
- String
primitive 타입은 값 자체가 복사되므로 공유되지 않는다. 래퍼클래스나 String은 참조값을 공유하는 객체지만 변경될 수 없으므로 사이드 이펙트를 발생시키지않는다.(불변 객체라 그런 것 같다)
임베디드 타입(복합 값 타입)
엔티티에서 의미적으로 묶을 수 있는 값 타입을 모아서 새로운 값 타입으로 만들어 사용한다. @Embedded 를 엔티티에서 값타입을 사용하는 필드에 지정, @Embeddable을 정의한 클래스에 지정해 사용할 수 있다.
장점
- 임베디드 타입을 통해 여러 엔티티에서 중복되는 값 타입들 을 줄여 재사용성이 높힐 수 있다.
- 임베디드 타입에 대해 특화된 메소드들을 정의하여 엔티티를 더 간결하고 직관적으로 유지할 수 있다.
주의할 점
- 기본 생성자 꼭 만들기!!
- 한 엔티티에 여러 임베디드 타입을 사용할 경우 @AttributeOverrides 를 통해 컬럼명 재정의!
참고
https://www.inflearn.com/course/ORM-JPA-Basic/dashboard
프로그래머스 level 2 - 타겟넘버
https://programmers.co.kr/learn/courses/30/lessons/43165
어제 순열 문제 한번 풀었다고 DFS는 빠르게 익숙해지고 있는 것 같다. 내일 DFS 문제 한번 더 풀어보고 BFS도 공부해서 바로 풀어봐야겠다.
'TIL' 카테고리의 다른 글
[TIL 2022-2-28]스프링 부트와 AWS로 혼자 구현하는 웹 서비스 (0) | 2022.02.28 |
---|---|
[TIL 2022-2-25] JPA 값 타입, PriorityQueue (0) | 2022.02.26 |
[TIL 2022-02-23] 지연로딩, 순열 알고리즘 (0) | 2022.02.24 |
[TIL 2022-02-22] JPA 프록시에 대해서, Set의 equals (0) | 2022.02.23 |
[TIL 2022-2-20] JPA 연관관계 매핑, 프로그래머스 (0) | 2022.02.21 |