1장. JPA 소개
1.1 SQL과 문제점
1.1.1 반복, 반복 그리고 반복
1.1.2 SQL에 의존적인 개발
1.1.3 JPA와 문제 해결
1.2 패러다임의 불일치
1.2.1 상속
1.2.2 연관관계
1.2.3 객체 그래프 탐색
1.2.4 비교
1.2.5 정리
1.3 JPA란 무엇일까?
1.3.1 JPA 소개
1.3.2 왜 JPA를 사용해야 하는가?
1.4 정리
2장. JPA 시작
2.1 이클립스 설치와 프로젝트 불러오기
2.2 H2 데이터베이스 설치
2.3 라이브러리와 프로젝트 구조
2.3.1 메이븐과 사용 라이브러리 관리
2.4 객체 매핑 시작
2.5 persistence.xml 설정
2.5.1 데이터베이스 방언
2.6 애플리케이션 개발
2.6.1 엔티티 매니저 설정
2.6.2 트랜잭션 관리
2.6.3 비즈니스 로직
2.6.4 JPQL
2.7 정리
3장. 영속성 관리
3.1 엔티티 매니저 팩토리와 엔티티 매니저
3.2 영속성 컨텍스트란?
3.3 엔티티의 생명주기
3.4 영속성 컨텍스트의 특징
3.4.1 엔티티 조회
3.4.2 엔티티 등록
3.4.3 엔티티 수정
3.4.4 엔티티 삭제
3.5 플러시
3.5.1 플러시 모드 옵션
3.6 준영속
3.6.1 엔티티를 준영속 상태로 전환: detach( )
3.6.2 영속성 컨텍스트 초기화: clear( )
3.6.3 영속성 컨텍스트 종료: close( )
3.6.4 준영속 상태의 특징
3.6.5 병합: merge( )
3.7 정리
4장. 엔티티 매핑
4.1 @Entity
4.2 @Table
4.3 다양한 매핑 사용
4.4 데이터베이스 스키마 자동 생성
4.5 DDL 생성 기능
4.6 기본 키 매핑
4.6.1 기본 키 직접 할당 전략
4.6.2 IDENTITY 전략
4.6.3 SEQUENCE 전략
4.6.4 TABLE 전략
4.6.5 AUTO 전략
4.6.6 기본 키 매핑 정리
4.7 필드와 컬럼 매핑: 레퍼런스
4.7.1 @Column
4.7.2 @Enumerated
4.7.3 @Temporal
4.7.4 @Lob
4.7.5 @Transient
4.7.6 @Access
4.8 정리
실전 예제 1. 요구사항 분석과 기본 매핑
__요구사항 분석
__도메인 모델 분석
__테이블 설계
__엔티티 설계와 매핑
__데이터 중심 설계의 문제점
5장. 연관관계 매핑 기초
5.1 단방향 연관관계
5.1.1 순수한 객체 연관관계
5.1.2 테이블 연관관계
5.1.3 객체 관계 매핑
5.1.4 @JoinColumn
5.1.5 @ManyToOne
5.2 연관관계 사용
5.2.1 저장
5.2.2 조회
5.2.3 수정
5.2.4 연관관계 제거
5.2.5 연관된 엔티티 삭제
5.3 양방향 연관관계
5.3.1 양방향 연관관계 매핑
5.3.2 일대다 컬렉션 조회
5.4 연관관계의 주인
5.4.1 양방향 매핑의 규칙: 연관관계의 주인
5.4.2 연관관계의 주인은 외래 키가 있는 곳
5.5 양방향 연관관계 저장
5.6 양방향 연관관계의 주의점
5.6.1 순수한 객체까지 고려한 양방향 연관관계
5.6.2 연관관계 편의 메소드
5.6.3 연관관계 편의 메소드 작성 시 주의사항
5.7 정리
실전 예제 2. 연관관계 매핑 시작
__일대다, 다대일 연관관계 매핑
__객체 그래프 탐색
6장. 다양한 연관관계 매핑
6.1 다대일
6.1.1 다대일 단방향 [N:1]
6.1.2 다대일 양방향 [N:1, 1:N]
6.2 일대다
6.2.1 일대다 단방향 [1:N]
6.2.2 일대다 양방향 [1:N, N:1]
6.3 일대일 [1:1]
6.3.1 주 테이블에 외래 키
6.3.2 대상 테이블에 외래 키
6.4 다대다 [N:N]
6.4.1 다대다: 단방향
6.4.2 다대다: 양방향
6.4.3 다대다: 매핑의 한계와 극복, 연결 엔티티 사용
6.4.4 다대다: 새로운 기본 키 사용
6.4.5 다대다 연관관계 정리
6.5 정리
실전 예제 3. 다양한 연관관계 매핑
__일대일 매핑
__다대다 매핑
7장. 고급 매핑
7.1 상속 관계 매핑
7.1.1 조인 전략
7.1.2 단일 테이블 전략
7.1.3 구현 클래스마다 테이블 전략
7.2 @MappedSuperclass
7.3 복합 키와 식별 관계 매핑
7.3.1 식별 관계 vs

![[광고] 위기브 고향사랑기부제 보드배너](https://an2-img.amz.wtchn.net/image/v2/30n2nHWSAw51zVsHKabnBg.png?jwt=ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKd0lqb2lMM1l5TDNOMGIzSmxMM0J5YjIxdmRHbHZiaTh4TlRBeU9USTRPRE14T1RJek9EUTNOU0o5LnJhWnI0MTlmU3o2TFBzZVVyemhLQksxRjdUZG1GMkZMYkJiWWhYVWR1cmM=)
![[광고] 위기브 고향사랑기부제 보드배너](https://an2-img.amz.wtchn.net/image/v2/eG_9e_QNuoozo-T-wRT1vw.png?jwt=ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKd0lqb2lMM1l5TDNOMGIzSmxMM0J5YjIxdmRHbHZiaTh4TURReE56ZzBNemd6TlRFM09UUTVNU0o5Lk5oMmExaFA3U3JLeVVpZWdRbl9ET0NjSzRQMVczWExMV2RDVUR6eFVRcU0=)
에이콘 오픈 소스 프로그래밍 시리즈. 자바 ORM 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결해준다. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다. 또한, 스프링 프레임워크와 JPA를 함께 사용하는 방법을 설명하고, 스프링 데이터 JPA, QueryDSL 같은 혁신적인 오픈 소스를 활용해서 자바 웹 애플리케이션을 효과적으로 개발하는 방법을 다룬다. JPA는 크게 객체와 테이블을 어떻게 매핑해야 하는지에 관한 설계 부분과 설계한 모델을 실제 사용하는 부분으로 나눌 수 있다. 책의 앞부분에서는 기초 이론과 설계 방법을 학습하고 뒷부분에서는 학습한 이론을 바탕으로 JPA를 활용해서 실제 웹 애플리케이션을 개발한다. 이 책은 JPA를 사용해서 엔터프라이즈 애플리케이션을 개발하려는 모든 자바 개발자를 대상으로 한다. 이 책의 내용을 이해하려면 자바 언어와 JDBC를 사용한 데이터베이스 프로그래밍, 그리고 객체지향 프로그래밍과 관계형 데이터베이스에 대해 어느 정도 알고 있어야 한다. 추가로 3부는 웹 개발과 스프링 프레임워크에 대한 기초 지식이 필요하며 JUnit을 다룰 수 있어야 한다. 그리고 예제 코드를 실행하려면 메이븐에 대해서도 약간의 지식이 필요하다.
저자/역자
코멘트
3목차
출판사 제공 책 소개
★ 요약 ★
자바 ORM 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결해준다. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다. 또한, 스프링 프레임워크와 JPA를 함께 사용하는 방법을 설명하고, 스프링 데이터 JPA, QueryDSL 같은 혁신적인 오픈 소스를 활용해서 자바 웹 애플리케이션을 효과적으로 개발하는 방법을 다룬다.
★ 이 책에서 다루는 내용 ★
■ JPA 기초 이론과 핵심 원리
■ JPA로 도메인 모델을 설계하는 과정을 예제 중심으로 설명
■ 다양한 객체 지향 쿼리 언어 설명
■ JPA와 스프링 프레임워크를 함께 사용해서 웹 애플리케이션을 개발하는 방법
■ 스프링 데이터 JPA, QueryDSL 소개 및 활용
■ 실무에서 JPA를 사용할 때 성능을 최적화하는 다양한 방법
★ 이 책의 대상 독자 ★
이 책은 JPA를 사용해서 엔터프라이즈 애플리케이션을 개발하려는 모든 자바 개발자를 대상으로 한다. 이 책의 내용을 이해하려면 자바 언어와 JDBC를 사용한 데이터베이스 프로그래밍, 그리고 객체지향 프로그래밍과 관계형 데이터베이스에 대해 어느 정도 알고 있어야 한다. 추가로 3부는 웹 개발과 스프링 프레임워크에 대한 기초 지식이 필요하며 JUnit을 다룰 수 있어야 한다. 그리고 예제 코드를 실행하려면 메이븐에 대해서도 약간의 지식이 필요하다.
★ 이 책의 구성 ★
JPA는 크게 객체와 테이블을 어떻게 매핑해야 하는지에 관한 설계 부분과 설계한 모델을 실제 사용하는 부분으로 나눌 수 있다. 책의 앞부분에서는 기초 이론과 설계 방법을 학습하고 뒷부분에서는 학습한 이론을 바탕으로 JPA를 활용해서 실제 웹 애플리케이션을 개발한다.
이 책은 크게 네 부분으로 나뉘어 있다.
1장에서 9장은 이론 편이다. 객체와 테이블을 매핑하는 방법과 JPA의 핵심 기능들을 알아본다. 4장부터 9장까지는 각 장의 마지막에 점진적으로 도메인 모델을 설계해 나가는 실전 예제가 있어서 학습한 내용을 실제로 적용해볼 수 있게 했다.
10장은 객체지향 쿼리 언어에 대한 내용이다. JPA가 제공하는 객체지향 쿼리 언어인 JPQL(Java Persistence Query Language)부터 직접 SQL을 작성하는 네이티브 SQL까지 알아본다.
11장과 12장은 실무에서 JPA를 사용하기 위한 활용편이다. 스프링 프레임워크와 JPA를 사용해서 어떻게 웹 애플리케이션을 개발하는지 학습하고 스프링 데이터 JPA와 QueryDSL이라는 혁신적인 오픈소스도 사용해본다.
13장에서 16장은 트랜잭션과 락, 캐시, 성능 최적화 등 JPA의 다양한 고급 주제들을 다룬다.
더 많은 코멘트를 보려면 로그인해 주세요!