본문 바로가기

JPA/값 타입

(6)
값 타입 컬렉션을 엔티티로 승격시키기 2021.09.04 - [JPA/값 타입] - 값 타입 컬렉션 값 타입 컬렉션 우리가 지금까지 배운 값 타입을 컬렉션으로 사용할 수도 있다. 하지만 명확한 단점때문에 사용하는 상황이 한정돼있다. 이번 글에서는 값 타입 컬렉션에 대해서 알아보자! github 전체코드 주소( code-mania.tistory.com 2021.08.24 - [JPA] - 영속성 전이(CASCADE)와 고아객체 영속성 전이(CASCADE)와 고아객체 영속성 전이란? Shop-Item이라는 엔티티가 관계를 맺고 있다고 해보자! 일반적으로 Item은 Shop이 없다면 Item 자체만으로는 의미를 가지지 못한다. 이런 경우 Shop을 제거하면 Item도 제거되어야 한다. code-mania.tistory.com 값 타입 컬렉션을 사..
값 타입 컬렉션 우리가 지금까지 배운 값 타입을 컬렉션으로 사용할 수도 있다. 하지만 명확한 단점때문에 사용하는 상황이 한정돼있다. 이번 글에서는 값 타입 컬렉션에 대해서 알아보자! github 전체코드 주소(branch: valueTypeCollection) (이번 글은 굉장히 복잡하다. 읽다가 헷갈리는 부분은 JPA/값 타입 카테고리의 글들을 참고해보자!!!) 값 타입 컬렉션은 값을 하나 이상 저장하기 위해 사용한다. Student Entity가 값타입 컬렉션으로 favoriteSubjects와 addressHistory를 가지고 있다. 그렇다면 이 값 타입 컬렉션은 Student 테이블에 저장될까? 당연히 아니다. 값 타입 컬렉션은 별도의 테이블에 저장된다. (Entity와 값 타입 컬렉션은 일 대 다 관계를 맺게..
값 타입의 비교 값 타입이 무엇인지 잘 모르신다면? 아래 글을 참고해주세요!!! 2021.08.28 - [JPA/값 타입] - 값 타입 값 타입 JPA 데이터 타입의 분류 JPA에는 크게 엔티티 타입과 값 타입이라는 두 개의 타입이 존재한다. 무엇인지 알아보자! 1. 엔티티타입 @Entity로 정의하는 클래스는 엔티티 타입으로 데이터가 변해도 식 code-mania.tistory.com 값 타입 부분에서는 객체의 기본적인 내용들이 어느정도 다뤄지고 있다. 사실 제목은 값 타입의 비교이지만, 객체의 비교를 아주 가볍게 다뤄볼 것이다. 또한 값 타입 중 기본(primitive) 타입을 제외한 나머지 타입들에 해당되는 내용이다! (음, 강의 듣고 정말 가볍게 정리했으니 객체의 비교를 이미 아시는 분은 통과해주세요 ㅠㅠ) gi..
임베디드 타입과 불변 객체 임베디드 타입 공유 참조 임베디드 타입 같은 값 타입을 여러 엔티티에서 공유하면 부작용이 발생할 수 있다. 어떤 부작용이 생기는지 코드를 통해 알아보겠다! github 전체코드 주소(branch: immutableObject) Student.java package hellojpa; import lombok.Data; import javax.persistence.*; @Entity @Data public class Student { @Id @GeneratedValue private Long id; private String name; private int age; @Embedded private Address address; } Address.java package hellojpa; import lombo..
임베디드 타입 2021.08.28 - [JPA] - 값 타입 값 타입 JPA 데이터 타입의 분류 JPA에는 크게 엔티티 타입과 값 타입이라는 두 개의 타입이 존재한다. 무엇인지 알아보자! 1. 엔티티타입 @Entity로 정의하는 클래스는 엔티티 타입으로 데이터가 변해도 식 code-mania.tistory.com 이번 글에서는 임베디드 타입이란 무엇인지 알아보겠다. 혹시 값 타입이 무엇인지 잘 모른다면 별 거 없으니 위 글을 먼저 읽어보는 것을 권장한다! 임베디드 타입 임베디드 타입은 사용자가 직접 정의해야 한다. 주로 기본 값 타입을 모아서 만들어서 복합 값 타입이라고도 한다. 임베디드 타입을 실제로 사용해보면서 어떤 것인지 알아보겠다! 학생 엔티티는 이름, 나이, 입학날짜, 졸업날짜, 사는 곳의 도시, 도로명, 우..
값 타입 JPA 데이터 타입의 분류 JPA에는 크게 엔티티 타입과 값 타입이라는 두 개의 타입이 존재한다. 무엇인지 알아보자! 1. 엔티티타입 @Entity로 정의하는 클래스는 엔티티 타입으로 데이터가 변해도 식별자(Primary Key)를 통해서 추적이 가능하다. ex) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 2. 값 타입 int, String, long처럼 단순히 값으로 사용하는 자바 기본 타입(primitive type)이나 클래스를 말한다. 식별자가 없고 값만 있으므로 변경 시 추적이 불가능하다. ex) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 값 타입의 생명 주기는 엔티티에 의존적이다. ex) 회원 엔티티를 제거하면 키와 나이 필드도 제거된다. 값 타입의 분류 기본값..