Part 01 기초 Chpater 01 들어가며 1 모델과 테이블간 매핑 2 JPA란 3 대상 독자 4 소스 코드 안내 Chpater 02 JPA 시작하기 1 예제 프로젝트 2 메이븐 프로젝트 생성 및 이클립스 임포트 3 데이터베이스 생성 4 모델 클래스와 매핑 설정 5 JPA 설정 6 영속 컨텍스트와 영속 객체 개요 7 간단한 예제 실행 8 EntityManagerFactory 관련 보조 클래스 9 콘솔을 사용한 사용자 관리 Chpater 03 엔티티 1 엔티티 클래스 2 접근 타입 : 영속 대상 필드와 프로퍼티 3 엔티티 클래스의 제약조건 4 엔티티 목록 설정 5 EntityManager의 엔티티 관련 기본기능 6 식별자 생성 방식 Chpater 04 밸류와 @Embeddable 1 밸류로 의미를 더 드러내기 2 밸류 클래스의 구현 3 @Embeddable 애노테이션과 @Embedded 애노테이션을 이용한 밸류 매핑 4 @Entity와@Embeddable의 라이프사이클 5 @AttributeOverrides를 이용한 매핑 설정 재정의 6 @Embeddable 중첩 7 다른 테이블에 밸류 저장하기 8 @Embeddable과 복합키 Chpater 05 EntityManager, 영속 컨텍스트, 트랜잭션 1 EntityManager와 영속 컨텍스트 2 EntityManager의 종류 3 트랜잭션 타입 4 EntityManager의 영속 컨텍스트 전파 Chpater 06 영속 객체의 라이프사이클 1 영속 객체의 라이프사이클 개요 2 EntityManager#persist()와 관리 상태 객체 3 EntityManager#find()와 관리 상태 객체 4 분리 상태 객체 5 EntityManager#merge()로 분리 상태를 관리 상태로 바꾸기 6 삭제 상태 객체 PART 02 연관 매핑 Chpater 07 엔티티 간 1:1 연관 그리고 즉시 로딩과 지연 로딩 1 키를 참조하는 1:1 연관 매핑 2 참조키를 이용한 1:1 단방향 연관 3 1:1 연관의 즉시 로딩과 지연 로딩 4 참조키를 이용한 1:1 양방향 연관 5 주요키를 공유하는 1:1 연관 매핑 6 주요키를 공유하는 1:1 단방향 연관 7 주요키를 공유하는 1:1 양방향 연관 8 1:1 연관 끊기 9 자동 생성키와 1:1 연관 저장 10 지연 로딩, 프록시, EntityManager 범위 Chpater 08 엔티티 간 N:1 단방향 연관 1 엔티티의 N:1 연관 2 참조키를 이용한 N:1 연관 설정 3 N:1의 연관 엔티티 로딩 4 특정 엔티티와 N:1 연관을 맺은 엔티티 목록 구하기 5 호텔과 최신 리뷰 조회하는 기능 만들기 Chpater 09 값의 콜렉션 매핑 1 값 콜렉션 2 단순 값 List 매핑 3 밸류 객체 List 매핑 4 List 요소와 null 5 단순 값 Set 매핑 6 밸류 객체 Set 매핑 7 단순 값 Map 매핑 8 밸류 객체 Map 매핑 9 콜렉션 타입별 구현 클래스 10 조회할 때 정렬 Set과 정렬 Map 사용하기 Chpater 10 엔티티 콜렉션 매핑 1 엔티티 콜렉션 매핑과 연관 관리 2 1:N 단방향 엔티티 Set 매핑 3 1:N 양방향 Set 매핑 4 조인 테이블을 이용한 1:N 단방향 엔티티 List 매핑 5 조인 테이블을 이용한 1:N 단방향 엔티티 Map 매핑 6 M:N 단방향 연관 7 M:N 양방향 연관 Chpater 11 영속성 전이 1 영속성 전이 2 영속성 전이 주의사항 Chpater 12 연관 잘 쓰기 1 연관의 복잡성 2 연관 범위 한정과 식별자를 통한 간접 참조 3 상태 변경 관련 기능과 조회 관련 기능 4 식별자를 공유하는 1:1 연관이 엔티티와 밸류 관계인지 확인 5 엔티티 콜렉션 연관과 주의사항 PART 03 쿼리 Chpater 13 JPQL 1 JPQL 2 JPQL 기본 코드 3 검색 조건 지정 4 페이징 처리 5 지정 속성 조회 6 한 개행 조회 7 조인 8 집합함수 9 group by와 having 10 함수와 연산자 11 네임드 쿼리 12 N+1 쿼리와 조회 전략 Chpater 14 크리테리아 API를 이용한 쿼리 1 크리테리아 API 2 크리테리아 기본 코드 3 검색 조건 지정 4 속성 경로 구하기 5 CriteriaQuery와 CriteriaBuilder 구분 6 Expression과 하위타입 7 비교연산자 8 정렬 순서 지정하기 9 지정 칼럼 조회 10 조인 11 집합함수 12 group by와 having 13 함수와 연산자 14 fetch조인 15 정적 메타모델 Chpater 15 추가 쿼리 기능 1 수정 쿼리와 삭제 쿼리 2 네이티브 쿼리 3 하이버네이트 @Subselect PART 04 스프링 연동 및 기타 기능 Chpater 16 스프링 연동 기초 1 스프링과 JPA 연동 설정 기초 Chpater 17 스프링 데이터JPA 소개 1 중복 코드 2 스프링 데이터 JPA 소개 3 스프링 데이터 JPA 설정 4 리포지토리 인터페이스 메서드 작성규칙 5 Specification을 이용한 검색 조건 조합 6 스프링 데이터가 제공하는 인터페이스 상속 받기 Chpater 18 기타 매핑 설정 1 상속 매핑 2 AttributeConverter를 이용한 속성 변환 3 @MappedSuperclass와 매핑 설정 공유 Chpater 19 JPA 잠금 기법 1 동시 접근과 잠금 2 선점 잠금(pessimisticlock) 3 비선점 잠금(optimisticlock) 부록A 정적 메타모델 생성 부록 B 커넥션 설정 색인