본문 바로가기

JPA

(43)
즉시로딩과 지연로딩 JPA에는 즉시로딩과 지연로딩이라는 개념이 존재한다! 즉시로딩은 무엇이고, 지연로딩은 무엇인지 알아보자! 또한 이번 글에서 Proxy에 대한 구체적인 설명은 하지 않으니 Proxy가 궁금하면 아래 글을 참고하자! 2021.08.22 - [JPA/Proxy] - Proxy란? Proxy란? 전체코드 github 주소(branch: blog/proxy) JPA에서 Proxy(프록시)란 무엇일까? 한 번 살펴보자!!! getReference EntityManager에서 제공하는 메서드 중 `getReference`라는 메서드가 있다. `getReference` 메서드.. code-mania.tistory.com github 전체코드(branch: blog/lazeEager) Student.java packag..
Proxy 주의사항 2021.08.22 - [JPA/Proxy] - Proxy란? Proxy란? 전체코드 github 주소(branch: blog/proxy) JPA에서 Proxy(프록시)란 무엇일까? 한 번 살펴보자!!! getReference EntityManager에서 제공하는 메서드 중 `getReference`라는 메서드가 있다. `getReference` 메서드.. code-mania.tistory.com 저번 글에서 Proxy란 무엇인지 알아봤다!! 이번 글에서는 Proxy를 사용할 때 주의해야 할 점에 대해 알아보자! github 전체코드 주소(branch: proxyPrecautions) Proxy와 타입체크 JpaMain.java - isStudent 메서드 public static boolean isSt..
Proxy란? 전체코드 github 주소(branch: blog/proxy) JPA에서 Proxy(프록시)란 무엇일까? 한 번 살펴보자!!! getReference EntityManager에서 제공하는 메서드 중 `getReference`라는 메서드가 있다. `getReference` 메서드는 Proxy를 통해서 데이터를 조회해온다. 이 메서드를 통해서 Proxy란 무엇인지, 어떻게 동작하는지 살펴보도록 하겠다. 코드를 통해 getReference의 동작을 살펴보자! JpaMain.java package hellojpa; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence..
@MappedSuperclass 이번 시간에는 @MappedSuperclass라는 어노테이션에 대해서 알아보겠다!! 별 거 없다!! 그런데 유용하다!! 편하게 보자~~ 우리가 관리하고 있는 어플리케이션에서 테이블에 데이터를 누가 언제 등록했고 수정했는지 관리해야 한다고 해보자! 그런데 이 관리를 특정 테이블이 아닌 거의 모든 테이블에서 해야 한다! 그러면 우리는 각 Entity마다 컬럼을 지정해야 한다.. Student.java package hellojpa; import lombok.Data; import javax.persistence.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Entity @Data public clas..
상속관계 매핑 코드 실습 github 전체코드(branch: InheritanceMapping) 2021.08.16 - [JPA/상속관계 매핑] - 슈퍼타입 서브타입 논리 모델 구현 전략 슈퍼타입 서브타입 논리 모델 구현 전략 객체의 상속과 DB의 슈퍼타입 서브타입 객체에는 상속이라는 개념이 존재한다. 하지만 관계형 DB에는 상속이라는 개념이 존재하지 않는다. 대신 슈퍼타입, 서브타입 관계라는 상속과는 다르지만 code-mania.tistory.com 2021.08.18 - [JPA/상속관계 매핑] - 상속관계 매핑 상속관계 매핑 슈퍼타입 서브타입 논리 모델 구현 전략 슈퍼타입 서브타입 논리 모델 구현 전략 객체의 상속과 DB의 슈퍼타입 서브타입 객체에는 상속이라는 개념이 존재한다. 하지만 관계형 DB에는 상속이라 code-ma..
상속관계 매핑 슈퍼타입 서브타입 논리 모델 구현 전략 슈퍼타입 서브타입 논리 모델 구현 전략 객체의 상속과 DB의 슈퍼타입 서브타입 객체에는 상속이라는 개념이 존재한다. 하지만 관계형 DB에는 상속이라는 개념이 존재하지 않는다. 대신 슈퍼타입, 서브타입 관계라는 상속과는 다르지만 code-mania.tistory.com 반드시 위 글을 먼저 읽어주세요!!! 슈퍼타입 서브타입 관계의 테이블 매핑 이번 글에서는 슈퍼타입 서브타입 논리모델을 구현한 물리모델의 테이블들을 엔티티로 매핑할 것이다. 저번에 알아봤듯이 구현전략에는 3개가 있다.(조인 전략, 단일테이블 전략, 테이블 당 클래스 전략) 어떤 전략을 사용하든 우리는 Entity는 다 똑같다. 우리는 그저 어떤 전략을 사용했는지 JPA에게 알려주기만 하면 나머지 작업은 ..
슈퍼타입 서브타입 논리 모델 구현 전략 객체의 상속과 DB의 슈퍼타입 서브타입 객체에는 상속이라는 개념이 존재한다. 하지만 관계형 DB에는 상속이라는 개념이 존재하지 않는다. 대신 슈퍼타입, 서브타입 관계라는 상속과는 다르지만 유사한 개념이 존재한다. 상속관계 매핑이란 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑해주는 것이다. 위 그림은 슈퍼타입, 서브타입 관계를 표현한 DB 논리모델이다.(수기로 작성해서 삐뚤빼뚤이지만 그래도 ㅠㅠ...) (현재 논리 모델에서 슈퍼타입은 가전제품이고, 나머지 아래쪽에 기구들은 서브타입이 된다.) 이 슈퍼타입 서브타입 논리 모델을 물리 모델(실제 테이블)로 구현하는 방법은 크게 3가지가 있다. 이번 시간에는 구현 방법 3가지에 대해 알아보겠다. 슈퍼타입 서브타입 논리모델 → 물리모델 변환 전략 3가..
N:M(다 대 다) 매핑 4: 양방향 연관관계 편의 메서드 전체코드 github 주소[branch: ManyToManyWithMappingMethod] 참고 강의: 배달의 민족 개발팀장 김영한 강사님의 JPA 강의 2021.05.22 - [JPA/양방향연관관계] - N:M(다 대 다) 매핑 3: 매핑테이블을 엔티티로 만들기 N:M(다 대 다) 매핑 3: 매핑테이블을 엔티티로 만들기 N:M 관계를 풀어낼 때 두 테이블을 엮기 위해 중간에 매핑테이블을 만들어야 한다. 그런데 이 때 매핑테이블을 @JoinTable과 @ManyToMany 어노테이션을 사용하여 만들면, 개발 도중에 발생하는 상황들 code-mania.tistory.com 해당 글은 위 글과 이어지는 내용입니다! package hellojpa; import javax.persistence.EntityMa..