HIBERNATE - 개성있는 자바를 위한 관계 영속

하이버네이트 참조 문서

3.0.5


차례

머리말
1. Tomcat으로 빠른 시작
1.1. Hibernate 시작하기
1.2. 첫 번째 영속 클래스
1.3. cat 매핑하기
1.4. cat들에 작업하기
1.5. 마지막으로
2. Hibernate 개요
2.1. 머리말
2.2. 파트 1 - 첫 번째 Hibernate 어플리케이션
2.2.1. 첫 번째 클래스
2.2.2. 매핑 파일
2.2.3. Hibernate 구성
2.2.4. Ant로 빌드하기
2.2.5. 시작과 helper들
2.2.6. 객체 로딩과 객체 저장
2.3. 파트 2 - 연관들을 매핑하기
2.3.1. Person 클래스 매핑하기
2.3.2. 단방향 Set-기반의 연관
2.3.3. 연관들에 작업하기
2.3.4. 값들을 가진 콜렉션
2.3.5. Bi-directional associations
2.3.6. 양방향 링크들에 작업하기
2.4. 요약
3. 아키텍처
3.1. 개요
3.2. 인스턴스 상태들
3.3. JMX 통합
3.4. JCA 지원
4. 구성
4.1. 프로그램 상의 구성
4.2. SessionFactory 얻기
4.3. JDBC 커넥션들
4.4. 선택적인 구성 프로퍼티들
4.4.1. SQL Dialects
4.4.2. Outer Join Fetching
4.4.3. Binary Streams
4.4.4. Second-level 캐시와 query 캐시
4.4.5. Query Language 치환
4.4.6. Hibernate 통계
4.5. 로깅
4.6. NamingStrategy 구현하기
4.7. XML 구성 파일
4.8. J2EE 어플리케이션 서버 통합
4.8.1. 트랜잭션 방도 구성
4.8.2. JNDI-bound SessionFactory
4.8.3. 자동적인 JTA 및 Session 바인딩
4.8.4. JMX 배치
5. 영속 클래스들
5.1. 간단한 POJO 예제
5.1.1. 아규먼트 없는 생성자를 구현하라
5.1.2. identifier 프로퍼티를 제공하라(옵션)
5.1.3. final이 아닌 클래스들을 선호하라(옵션)
5.1.4. 영속 필드들을 위한 accessor들과 mutator들을 선언하라(옵션)
5.2. 상속 구현하기
5.3. equals()와 hashCode() 구현하기
5.4. 동적인 모형들
6. 기본 O/R 매핑
6.1. 매핑 선언
6.1.1. Doctype
6.1.2. hibernate-mapping
6.1.3. class
6.1.4. id
6.1.4.1. Generator
6.1.4.2. Hi/lo algorithm
6.1.4.3. UUID 알고리즘
6.1.4.4. 식별 컬럼들과 시퀀스들
6.1.4.5. 할당된 식별자들
6.1.4.6. 트리거들에 의해 할당된 프라이머리 키들
6.1.5. composite-id
6.1.6. discriminator
6.1.7. version (옵션)
6.1.8. timestamp (옵션)
6.1.9. 프로퍼티
6.1.10. many-to-one
6.1.11. one-to-one
6.1.12. natural-id
6.1.13. component, dynamic-component
6.1.14. properties
6.1.15. subclass
6.1.16. joined-subclass
6.1.17. union-subclass
6.1.18. join
6.1.19. key
6.1.20. column 요소와 formula 요소
6.1.21. import
6.1.22. any
6.2. Hibernate 타입들
6.2.1. 엔티티들과 값들
6.2.2. 기본 value 타입들
6.2.3. 맞춤형 value 타입들
6.3. 하나의 클래스를 한 번 이상 매핑하기
6.4. SQL 인용부호 표시된 식별자들
6.5. Metadata 대안들
6.5.1. XDoclet 마크업 사용하기
6.5.2. JDK 5.0 Annotations 사용하기
7. 콜렉션 매핑
7.1. 영속 콜렉션들
7.2. 콜렉션 매핑들
7.2.1. 콜렉션 foreign 키들
7.2.2. 콜렉션 요소들
7.2.3. 인덱싱 된 콜렉션들
7.2.4. 값들을 가진 콜렉션들과 many-to-many 연관들
7.2.5. One-to-many 연관들
7.3. 개선된 콜렉션 매핑들
7.3.1. Sorted 콜렉션들
7.3.2. 양방향 연관들
7.3.3. 인덱싱된 콜렉션들을 가진 양방향 연관들
7.3.4. Ternary associations(세겹 연관들)
7.3.5. <idbag> 사용하기
7.4. 콜렉션 예제들
8. 연관 매핑들
8.1. 개요
8.2. 단방향 연관들
8.2.1. many to one
8.2.2. one to one
8.2.3. one to many
8.3. join 테이블들에 대한 단방향 연관들
8.3.1. one to many
8.3.2. many to one
8.3.3. one to one
8.3.4. many to many
8.4. 양방향 연관들
8.4.1. one to many / many to one
8.4.2. one to one
8.5. join 테이블들에 대한 양방향 연관들
8.5.1. one to many / many to one
8.5.2. one to one
8.5.3. many to many
8.6. 보다 복잡한 연관 매핑들
9. Component 매핑
9.1. 종속 객체들
9.2. 종속 객체들을 가진 콜렉션들
9.3. Map 인덱스들로서 컴포넌트들
9.4. composite 식별자들로서 컴포넌트들
9.5. 동적인 컴포넌트들
10. 상속 매핑
10.1. 세 가지 방도들
10.1.1. Table per class hierarchy
10.1.2. Table per subclass
10.1.3. discriminator를 사용하는, table per subclass
10.1.4. table per class hierarchy와 table per subclass를 혼합하기
10.1.5. Table per concrete class
10.1.6. 함축적인 다형성을 사용하는, table per concrete class
10.1.7. 함축적인 다형성을 다른 상속 매핑들과 혼합하기
10.2. 제약들
11. 객체들로 작업하기
11.1. Hibernate 객체 상태들
11.2. 객체들을 영속화 시키기
11.3. 객체를 로드시키기
11.4. 질의하기
11.4.1. 질의들을 실행하기
11.4.1.1. 결과들을 반복하기
11.4.1.2. 튜플들을 반환하는 질의들
11.4.1.3. 스칼라 결과들
11.4.1.4. 바인드 프라미터들
11.4.1.5. 쪽매김
11.4.1.6. 스크롤 가능한 iteration
11.4.1.7. 명명된 질의들을 구체화 시키기
11.4.2. 콜렉션들을 필터링 하기
11.4.3. Criteria 질의들
11.4.4. native SQL에서 질의들
11.5. 영속 객체들을 변경하기
11.6. detached 객체들을 변경시키기
11.7. 자동적인 상태 검출
11.8. 영속 객체들을 삭제하기
11.9. 두 개의 다른 데이터저장소들 사이에 객체들을 복제하기
11.10. Session을 flush 시키기
11.11. Transitive persistence(전이 영속)
11.12. 메타데이터 사용하기
12. 트랜잭션들과 동시성
12.1. 세션 영역과 트랜잭션 영역
12.1.1. 작업 단위
12.1.2. 어플리케이션 트랜잭션들
12.1.3. 객체 identity 고려하기
12.1.4. 공통된 쟁점들
12.2. 데이터베이스 트랜잭션 경계 설정
12.2.1. 관리되지 않는 환경
12.2.2. JTA 사용하기
12.2.3. 예외상황 처리
12.3. Optimistic 동시성 제어
12.3.1. 어플리케이션 버전 체킹
12.3.2. 긴 세션과 자동적인 버전화
12.3.3. Detached 객체들과 자동적인 버전화
12.3.4. 자동적인 버전화를 맞춤화 시키기
12.4. Pessimistic 잠금
13. 인터셉터들과 이벤트들
13.1. 인터셉터들
13.2. 이벤트 시스템
13.3. Hibernate 선언적인 보안
14. Batch 처리
14.1. Batch inserts
14.2. Batch updates
14.3. 대량 update/delete
15. HQL: Hibernate Query Language
15.1. 대소문자 구분
15.2. from 절
15.3. 연관들과 조인들
15.4. select 절
15.5. 집계 함수들
15.6. Polymorphic(다형성) 질의들
15.7. where 절
15.8. 표현식들
15.9. order by 절
15.10. group by 절
15.11. 서브질의들
15.12. HQL 예제들
15.13. 대량 UPDATE & DELETE 문장들
15.14. 팁들 & 트릭들
16. Criteria 질의들
16.1. Criteria 인스턴스 생성하기
16.2. 결과 셋 제한하기
16.3. 결과들을 순서지우기(ordering)
16.4. 연관들
16.5. 동적인 연관 페칭
16.6. 예제 질의들
16.7. Projections, aggregation 그리고 grouping
16.8. Detached 질의들과 서브질의들
16.9. natural 식별자에 의한 질의들
17. Native SQL
17.1. native SQL Query 생성시키기
17.2. Alias 참조와 프로퍼티 참조
17.3. 명명된 SQL 질의들
17.3.1. 명시적으로 column/alias 이름들을 지정하는데 return-property 사용하기
17.3.2. 질의를 위한 내장 프로시저 사용하기
17.3.2.1. 내장 프로시저들을 사용하는 규칙들/제약들
17.4. create, update 그리고 delete를 위한 맞춤형 SQL
17.5. 로딩을 위한 맞춤형 SQL
18. 데이터 필터링하기
18.1. Hibernate 필터들
19. XML 매핑
19.1. XML 데이터로 작업하기
19.1.1. XML과 클래스 매핑을 함께 지정하기
19.1.2. XML 매핑만을 지정하기
19.2. XML 매핑 메타데이터
19.3. XML 데이터 처리하기
20. 퍼포먼스 개선하기
20.1. 페칭 방도들
20.1.1. lazy 연관들로 작업하기
20.1.2. 페치 방도들을 튜닝하기
20.1.3. Single-ended 연관 프락시
20.1.4. 콜렉션들과 프락시들을 초기화 시키기
20.1.5. batch 페칭 사용하기
20.1.6. subselect 페칭 사용하기
20.1.7. lazy 프로퍼티 페칭 사용하기
20.2. 두번째 레벨 캐시
20.2.1. Cache 매핑들
20.2.2. 방도: 읽기 전용
20.2.3. 방도: 읽기/쓰기
20.2.4. 방도: 엄격하지 않은 읽기/쓰기
20.2.5. 방도: transactional
20.3. 캐시들을 관리하기
20.4. 질의 캐시
20.5. 콜렉션 퍼포먼스 이해하기
20.5.1. 분류
20.5.2. List, map, idbag, set들은 update에 가장 효율적인 콜렉션들이다
20.5.3. Bag들과 list들은 가장 효율적인 inverse 콜렉션들이다
20.5.4. 원 샷 delete
20.6. 퍼포먼스 모니터링하기
20.6.1. SessionFactory 모니터링 하기
20.6.2. Metrics
21. 도구셋 안내
21.1. 자동적인 스키마 생성
21.1.1. 스키마 맞춤화 시키기
21.1.2. 도구 실행하기
21.1.3. 프로퍼티들
21.1.4. Ant 사용하기
21.1.5. 점증하는 스키마 업데이트들
21.1.6. 점증하는 스키마 업데이트들에 Ant 사용하기
22. 예제: 부모/자식
22.1. 콜렉션들에 관한 노트
22.2. 양방향 one-to-many
22.3. 케스케이딩 생명주기
22.4. 케스케이드들과 unsaved-value
22.5. 결론
23. 예제: Weblog 어플리케이션
23.1. 영속 클래스들
23.2. Hibernate 매핑들
23.3. Hibernate 코드
24. 예제: 여러 가지 매핑들
24.1. Employer/Employee
24.2. Author/Work
24.3. Customer/Order/Product
24.4. 기타 예제 매핑들
24.4.1. "형식화된(Typed)" one-to-one 연관
24.4.2. Composite 키 예제
24.4.3. 공유된 합성 키 속성을 가진 Many-to-many
24.4.4. 내용 기반 판별
24.4.5. 대체 키들에 대한 연관들
25. 최상의 실전 경험들