/jpa-querydsl

자바 ORM 표준 JPA - 실전 연습

Primary LanguageJava

image

Chapter1-2. JPA

객체 모델과 관계형 데이터 베이스 모델의 패러다임이 다르고 이를 극복하고자 개발자가 많은 시간과 코드를 소비한다.
데이터베이스 중심 모델에서 객체 모델링으로 패러다임 불일치를 해결 해주고 정교한 객체 모델링을 유지하게 도와준다.

Chapter3. 영속성관리

  • 영속성 컨텍스트 엔티티 매니저를 통해서 엔티티를 영구 저장하는 환경이다.

  • 엔티티 생명주기 비영속성 : 엔티티 객체를 생성하였으나, 순수한 객체 상태이며 아직 저장하지 않은 상태
    영속성 : 엔티티 매니저를 통하여 객체를 저장하엿을 때 영속성 컨텍스트가 관리하는 상태
    준 영속성 : 영속성 컨텍스트에서 관리하던 엔티티가 매니저가 닫거나 정리되면서 분리된 상태를 의미한다. 비영속성 상태와 비슷하나 키를 갖고 있다.
    삭제 : 엔티티를 영속성 컨텍스트와 데이터 베이스에서 삭제한 상태

  • 영속성 컨텍스트의 특징

  1. 식별자 값을 반드시 가지고 있어야 한다. 없는 경우 예외를 발생한다.
  2. 영속성 컨텍스트와 데이터 베이스는 보통 트랜잭션 커밋하는 순간 엔티티의 값들을 반영한다 이를 플러시라고 한다.
  • 영속성 컨텍스트의 장점
  1. 1차 캐시
  2. 동일성 보장
  3. 쓰기 지연
  4. 변경 감지
  5. 지연 로딩

Chapter4. 엔티티 매핑

  • 기본 키 매핑
  • 필드와 컬럼 매핑

Chapter5. 연간관계 매핑

  • 단방향
  • 양방향
  • 연간관계 주인 설정
  • 양방향 연간관계의 주의점

Chapter6. 다양한 연간관계 매핑

  • 1:1
  • 1:N
  • N:1
  • N:M

Chapter7. 고급매핑

  • 상속 관계 매핑
  • @MappedSuperclass
  • 복합키의 식별관계 - 비식별관계

Chapter8. 프록시와 연간관계

  • 즉시로딩
  • 지연로딩
  • 영속선 전이
  • 고아 객체

Chapter9. 값 타입

  • 기본값 타입
  • 임베디드 타입(복합 값)
  • 값 타입의 불변객체
  • 값 타입의 비교
  • 값 타입 컬렉션 사용

Chapter10. 객체지향 쿼리 언어

  • JPQL
  • Criteria
  • QueryDSL
  • NativeSQL
  • 벌크 연산
  • 영속성 컨텍스트와 JPQL
  • JPQL과 플러시 모드